2017-09-15 11:26
@JFinal 不过有一点还是想不明白。在源码中也看不出根据。
就是在使用 Tx 注解的时候,我的想法是只需要在 controller 层使用就可以了。然后拦截器发现这是一个被事务注解的方法,method.invoke 前调用 setAutoCommit 为 false,再调用本方法的逻辑,然后 commit.在 catch 和 finally 做相应的处理。
那么问题来了,为什么 需要对 service 层的方法做事务增强呢?
2017-09-15 11:20
@JFinal 明白。设计上应该从原子处考虑,拦截器只是一个高层上的应用,具体的逻辑还得依靠底层,此是相应的是 model 等处的逻辑实现。否则可能拦截器要释放一遍,到时再出一个高层上的应用,可能又要再释放一遍之类的操作。
以上只是我的个人设计上的主观猜测。
2017-09-01 15:28
@JFinal 就是这此。没有打印这个类的全路径。(c.c.s.p.PickGoodsManageService 不知道是什么来的)
2017-09-01 15:27
@JFinal 2017-09-01 15:27:07.886 [ http-nio-8080-exec-5 ] - [ DEBUG ] [ c.c.s.p.PickGoodsManageService : 1790 ] - dddd-dd(马***)上传了文件:ssceca2.clx 到 D:/uploadFiles
2017-09-01 15:27:07.886 [ http-nio-8080-exec-5 ] - [ DEBUG ] [ c.c.s.p.PickGoodsManageService : 1790 ] - dd-dd(马龙)上传了文件:ssceca2.clx 到 D:/uploadFiles