方法1:通过AOP配置提供事务增强,让service包下所有Bean的所有方法拥有事务
注意事务处理的类所在的包,以及方法的名称
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="delete*" propagation="REQUIRED"
read-only="false" rollback-for="java.lang.Exception" no-rollback-for="java.lang.RuntimeException" />
<tx:method name="insert*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.RuntimeException" />
<tx:method name="update*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception" />
<tx:method name="find*" propagation="SUPPORTS" />
<tx:method name="get*" propagation="SUPPORTS" />
<tx:method name="select*" propagation="SUPPORTS" />
</tx:attributes>
</tx:advice>
<aop:config proxy-target-class="true">
<aop:pointcut id="serviceMethod" expression=" execution(* com.brkc.epolice.service..*(..))" />
<aop:advisor pointcut-ref="serviceMethod" advice-ref="txAdvice" />
</aop:config>
方法2:事务注解驱动,标注@Transactional的类和方法将具有事务性,个人比较喜欢这种方法,比较灵活
<tx:annotation-driven transaction-manager="transactionManager" />
方法3:没尝试。。。