实际是使用代理做的事务优化
<!--配置事务的属性-->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<!--匹配所有以add开头的方法-->
<tx:method name="add*" propagation="REQUIRED" />
<tx:method name="del*" propagation="REQUIRED" />
<tx:method name="update*" propagation="REQUIRED" />
<!-- NOT_SUPPORTED以非事务的方式执行-->
<tx:method name="get*" propagation="NOT_SUPPORTED"
read-only="true" />
<!--配置触发回滚的异常-->
<tx:method name="doComplexLogic" propagation="NESTED"
isolation="REPEATABLE_READ" timeout="1000" rollback-for="java.lang.Exception"
no-rollback-for="com.mysrc.service.CustomRuntimeException" />
</tx:attributes>
</tx:advice>
主要是参考:
http://tonl.iteye.com/blog/2093314
http://sishuok.com/forum/blogPost/list/2508.html
http://blog.csdn.net/feiyu8607/article/details/10260893