为什么spring框架的大多数用户选择声明式事务管理

如题所述

首先你要明白spring的AOP不是对servic的每个方法都添加事务,而是根据你在service层写的方法名字的前缀来指定添加,比如
<tx:method name="find*" propagation="REQUIRED" read-only="true"/>
<tx:method name="query*" propagation="REQUIRED" read-only="true"/>
这上面2行就是默认添加事务的配置文件,很明显事务只对于find和query前缀的方法才添加,当然i也可以手动的添加,但实际开发项目中都是配置文件,默认添加的。
那问题来了 如果像你那样在service层调用了find方法再调用其它service层的query方法会不会冲突?是不会冲突的,因为一个session可以对应多个事务,当像你这种情况一个session要对应2个以上事务时候,根据spring SessionFactory配置文件 ,从第二个事务都嵌套在第一个find事务里。就是说后面的事务都包含在find方法的事务里。所以不冲突,我上面代码中的
propagation="REQUIRED"就是关键字,说明第二个事务开始都包含在第一个事务里
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网