STEP BY STEP
07
06
Using Optional with Jackson Using Optional with Jackson
在java8的时候,针对NOP异常,提供了Optional的解决方案。但是你了解Jackson序列化含Optional字段的POJO时会发生什么吗?在本文中,将介绍Optional类,然后解释在与Jackson一起使用时可能遇到的一些问题
2019-07-06
06
29
Spring Boot 2实现分布式锁 Spring Boot 2实现分布式锁
随着应用的分布式部署,有很多新的问题需要考虑解决,分布式锁就是其中一个。目前我们的项目中分布式锁是采用zk来实现的。其实Spring早就提供了分布式锁的实现。早期,分布式锁的相关代码存在于Spring Cloud的子项目Spring Cl
2019-06-29
22
01
idea中解决maven包冲突的问题 idea中解决maven包冲突的问题
在我们使用maven进行jar包管理的时候,因为jar包传递依赖,可能会导致相同jar包的不同版本被依赖,由于包管理的依赖优先级会导致最终实际引入的jar包不是你最终需要的版本,由此可能出现类找不到的情况。针对这种jar包冲突的问题,可以
2019-06-01
01
用TaskDecorator复制MDC数据到@Async线程 用TaskDecorator复制MDC数据到@Async线程
这主要涉及父子线程传值的问题,以及当配置@Async应用线程池时,如果得到MDC数据。参考原文 这篇博文主要展示如何从web线程里复制MDC数据到@Async注解的线程里,我们将会使用一个全新的 Spring Framework 4.3
2019-06-01 shiv
05
17
SDKMAN管理本地多版本jdk环境 SDKMAN管理本地多版本jdk环境
SDKMAN可以管理多版本的开发工具环境,可以参考我的上一篇【SDKMAN——软件开发工具管理器】入门,可能由于oracle的一些原因,发现SDKMAN默认提供的jdk版本没有出现oracle提供的版本了。但是我们可以从oracle官网下
2019-05-17
13
CompletableFuture 组合式异步编程 CompletableFuture 组合式异步编程
有时候当你想批量调取第三方api获取数据,并将返回的信息聚集起来,如果我们用直接简单的循环调用,这个处理时间长不说,一个调用超时就会阻塞整个逻辑的处理。如果采用异步的方式调用,编程的成本就会增大,比如最终结果的收集,异常的处理等;在jav
2019-05-13
13
更好的调试 Java Stream 更好的调试 Java Stream
java8里新增的Stream API非常强大,能够开发出更加简洁易懂的代码,但是如果出现问题,往往也没那么好去调试。这里主要介绍使用idea的Stream debugger方法。 举个简单的例子 List<Integer>
2019-05-13
13
SDKMAN——软件开发工具管理器 SDKMAN——软件开发工具管理器
这个工具是在大多数基于Unix的系统上管理多个软件开发工具包的并行版本的工具。它提供了一个方便的命令行接口(CLI)和API,用于安装、切换、删除和列出候选对象,它的前身是Groovy环境管理器GVM,其灵感来自Ruby社区广泛使用的非常
2019-05-13
5 / 6