之前是刚开始使用Spring的事务管理,采用比较简单方便的注解方式进行事务处理,而注解方式进行事务处理需要在每一个要实现事务的类上添加@Transactional注解,在比较小的项目中可以这样来用。但是在大型项目中,注解方式管理事务不够清晰,无法判断哪里开启了事务,必须一一查看才能知道,所以说采用xml配置事务可以比较清晰的标注到底哪个业务的哪个方法开启了事务,开启的事务的属性是什么。
配置方式如下:
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="*" propagation="REQUIRED" read-only = "false"/>
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut expression="execution(* *.*.*(..))" id="pointcut"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="pointcut"/>
</aop:config>
其中<tx:advice>是配置事务的处理逻辑,<aop:config>是配置切面,<aop:pointcut>说明切入点,<aop:advisor>将advice注入到pointcut里。