前言

某日,在项目测试代码过程中,发现一个问题,对于一个方法A(无事务),调用B方法(有事务),当A,B方法在同一个类中的时候,在B方法上的事务注解是不生效的!

同事说将B方法写到新的Service类中就可以解决,遂试之,确实得以解决。但不解其原理,问同事、查资料均感觉不如意。故分析了下Spring 事务的部分源码。有所见解,特此记录。

下图就是我描述的这种情况,B事务不生效的问题。

阅读全文 »

前言

Java 8中,流有一个非常大的局限性,使用时,对它操作一次仅能得到一个处理结果。当流进行终端操作后,如果你在试图遍历它,就会出现异常。

1
java.lang.IllegalStateException: stream has already been operated upon or closed

虽然流就是如此设计的,但是我们有时候就希望可以通过流获取多个结果。或者说,你希望一次性向流中传入多个Lambda表达式。 为了达到这一目标,我们应该需要一个fork类型的方法,对每个复制的流应用不同的函数。理想情况下,这些操作也应该支持并行去拿到运算结果。

阅读全文 »

前言

Redis作为一款强大的key-value型数据库,其应用是十分广泛的。在Java语言中,常用来与Redis数据库建立连接用到的是Jedis Pool连接池。

今天我们来简单了解下它们然后实现一个可移植的操作Redis的API。

正文

阅读全文 »