Spring 自定义AOP与声明式事务执行顺序问题

最近发现一个小问题,在自己的service中使用了声明式事务,并且在service前后使用了自定义AOP来记录日志,发现在service中发生异常时,连带自定义AOP中的记录log操作也会回滚,尝试在自定义AOP的方法中添加声明式事务来设置传播性(改成不启用事务以及启用新事务),然而均不起作用。后来想想两个都是用AOP来实现,执行起来的顺序估计有问题。

 

      查找资料发现可以对多个AOP设置执行顺序,这种情况只要让自定义AOP在前,不包含在事务中,应该就能解决。

      可以设置order参数,值越小,优先级越高,如果不设置,就是优先级最小。

      

比如:

 

设置事务的优先级 设置成2

 

[html]  view plain  copy
 
  1. <!-- 采用@Transactional注解方式使用事务 -->  
  2. annotation-driven transaction-manager="txManager" order="2"/>  

 

设置自定义AOP的优先级 设置成1

 

[java]  view plain  copy
 
  1. @Service  
  2. @Aspect  
  3. @Order(1)  
  4. public class LogAspect {  
  5. 。。。  
  6. }  



 


经测试解决问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值