Spring中事务的作用范围
下面一种情景:
在做项目中通常会进行分层架构.假设可分为Service、Biz、Dao3层.关系如下:
一个Service类调用多个Biz类,一个Biz调用多个Dao类完成业务逻辑.
基于这种情况,通常我们把事务控制到Service层.
很当然的引入Spring中配置:(其他配置略)
<property name="beanNames"> <list> <value>*ServiceImpl</value> </list> </property>
那么,引入一个问题:如果同时对Service层和Biz层加入Spring的事务配置中,是哪一层起作用呢、?
换句话说,假设一个Service有两个Biz类,那么第一个Biz类操作成功,而第二个操作失败,此时第一个Biz是否有回滚呢。?
对应的Spring配置:
<property name="beanNames"> <list> <value>*ServiceImpl</value> <value>*BizImpl</value> </list> </property>
通过实验证明可得到结论:哪个包含的范围大,哪个事务起作用。
上面的假设,Service的事务起作用,第一个Biz会被回滚掉。