摘要: 1.countDownLatch(闭锁) countDownLatch基于AQS的成员变量state实现的计数器,每次执行countDown()方法时,计数器减1,执行await()方法会阻塞线程直到计数器为0。我的理解 就类似一个大门一样,当计数器为0 大门才会打开,所有的线程才能通过大门,继续执阅读全文
posted @ 2018-11-25 19:11 雪浪snowWave 阅读(62) 评论(0) 编辑
摘要: 主要有两种 1 基于数据库,每次指定步长(step),步长消耗完成后,更新数据库里的value为oldValue+step,再循环。 ID最大值为Long.MAX_VALUE-1.当应用程序需要获取id时,将有idGenerator访问DB,并获取一个range:[value,value+step)阅读全文
posted @ 2018-10-11 14:54 雪浪snowWave 阅读(11) 评论(0) 编辑
摘要: 参考 https://segmentfault.com/a/1190000011282426阅读全文
posted @ 2018-10-11 14:34 雪浪snowWave 阅读(7) 评论(0) 编辑
摘要: 背景: 在业务代码中,会出现很多dto之间的相互转换,就是两个dto属性的各种get,set,会造成大量的冗余代码,所以出现了一些工具,比如Spring中的beanUtil,但是beanutil是运行时处理的,性能较差,所以出现了一款利器,mapstruct,它是编译生效的,类似lombok,所以性阅读全文
posted @ 2018-05-11 21:25 雪浪snowWave 阅读(30) 评论(0) 编辑
摘要: 首先,所有html文件都要放在固定路径下才能被正确读取到,/main/java/resources/templates这个路径下,而且html所有的标签必须闭合,否则启动报错 今天调用模板的时候遇到了问题,模板名为hello.html,可是访问时候一直报404,那肯定是没有正确被controller阅读全文
posted @ 2018-04-08 21:21 雪浪snowWave 阅读(100) 评论(0) 编辑
摘要: 1.什么是领域驱动设计(DDD:Domain Driven Design) 领域驱动设计(DDD)是一种基于模型驱动的软件设计方式。它以领域为核心,分析领域中的问题,通过建立一个领域模型来有效的解决领域中的核心的复杂问题。领域驱动设计提出了一套核心构造块(如聚合、实体、值对象、领域服务、领域工厂、仓阅读全文
posted @ 2018-02-09 16:11 雪浪snowWave 阅读(27) 评论(0) 编辑
摘要: springMVC全局异常的优点:异常不被包装,项目的包名甚至SQL语句,数据库ip都会被泄露 无SpringMVC全局异常时的处理流程: 有SpringMVC全局异常时的处理:阅读全文
posted @ 2018-02-05 11:19 雪浪snowWave 阅读(9) 评论(0) 编辑
摘要: 问题:每次commit时候,在本project都会显示commit次数,但是主页的contributions不会变绿色,也就是contributions无效 解答:这种情况是因为github 不认为你是这个项目的贡献者,就是你没有与这个项目建立关联,或者不是在默认分支上提交的 所以要建立本地proj阅读全文
posted @ 2018-01-25 11:06 雪浪snowWave 阅读(16) 评论(0) 编辑
摘要: "you know, for search“”,这是es的口号,所以es最核心的功能就是查询,es中查询简单来说有两种: 1.子条件查询:即特定字段查询所指特定值。子条件查询又分为query context和filter content query content:在查询过程中,除了判断文档是否满足阅读全文
posted @ 2018-01-24 16:25 雪浪snowWave 阅读(21) 评论(0) 编辑
摘要: 1.轮询(默认):实现简单,不考虑每台服务器性能 2.权重:(应用最大) 根据服务器性能进行权重分配策略,性能高的权重高些,负载也更多 3.ip hash :能实现同一个用户访问同一台机器,但是不一定平均,根据请求的ip进行取模映射(缺点是ip会改变,负载不均衡) 4.url hash(第三方):根阅读全文
posted @ 2018-01-12 18:05 雪浪snowWave 阅读(21) 评论(0) 编辑