Spring 事务配置实战:过滤无需事务处理的查询之类操作
Posted 川雨淅
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring 事务配置实战:过滤无需事务处理的查询之类操作相关的知识,希望对你有一定的参考价值。
<tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="delete*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception"/> <tx:method name="insert*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception" /> <tx:method name="update*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception" /> <tx:method name="save*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception" /> </tx:attributes> </tx:advice>
各标签配置可参考:tx:advice详解
Tips:
tx:method中name标明的方法为transactionManager管理的需要应用事务处理方法。
不过,不符name的方法,也会应用到事务。so,日志会有Don‘t need create transactionManager……提示。
去除上则消息,需要在AOP注入配置中过滤掉,如查询。
具体参考以下配置:
<aop:config> <aop:pointcut id="pc" expression="(execution(* com.*.service..*(..))) and !(execution(* com.*.service..*.check*(..))) and !(execution(* com.*.service..*.find*(..))) and !(execution(* com.*.service..*.list*(..))) and !(execution(* com.*.service..*.get*(..)))" /> <aop:advisor pointcut-ref="pc" advice-ref="txAdvice" /> </aop:config>
各标签配置可参考:aop:config详解
去除aop注入的service包及子包中,以find,get,list,check开头的方法。
如此,查询操作即可不需用到事务处理,也就没了Don‘t need create transactionManager……的提示。
以上是关于Spring 事务配置实战:过滤无需事务处理的查询之类操作的主要内容,如果未能解决你的问题,请参考以下文章
Java实战之03Spring-05Spring中的事务控制(基于AOP)
springCloud分布式事务实战分布式事务处理器的下载,编译和运行