Spring Transaction 注解不生效bug引发的思考 发表于 2018-11-03 更新于 2018-12-22 分类于 学习 阅读次数: Valine: 本文字数: 4.5k 阅读时长 ≈ 4 分钟前言某日,在项目测试代码过程中,发现一个问题,对于一个方法A(无事务),调用B方法(有事务),当A,B方法在同一个类中的时候,在B方法上的事务注解是不生效的!同事说将B方法写到新的Service类中就可以解决,遂试之,确实得以解决。但不解其原理,问同事、查资料均感觉不如意。故分析了下Spring 事务的部分源码。有所见解,特此记录。下图就是我描述的这种情况,B事务不生效的问题。阅读全文 »
如何以并发方式在同一个流上执行多种操作 发表于 2018-10-27 更新于 2018-12-22 分类于 学习 阅读次数: Valine: 本文字数: 6.7k 阅读时长 ≈ 6 分钟前言Java 8中,流有一个非常大的局限性,使用时,对它操作一次仅能得到一个处理结果。当流进行终端操作后,如果你在试图遍历它,就会出现异常。1java.lang.IllegalStateException: stream has already been operated upon or closed虽然流就是如此设计的,但是我们有时候就希望可以通过流获取多个结果。或者说,你希望一次性向流中传入多个Lambda表达式。 为了达到这一目标,我们应该需要一个fork类型的方法,对每个复制的流应用不同的函数。理想情况下,这些操作也应该支持并行去拿到运算结果。阅读全文 »
封装一个属于自己的Redis API 发表于 2018-10-27 更新于 2018-12-22 分类于 学习 阅读次数: Valine: 本文字数: 6.4k 阅读时长 ≈ 6 分钟前言Redis作为一款强大的key-value型数据库,其应用是十分广泛的。在Java语言中,常用来与Redis数据库建立连接用到的是Jedis Pool连接池。今天我们来简单了解下它们然后实现一个可移植的操作Redis的API。正文阅读全文 »