SpringAOP中 order属性问题

当我练习使用Spring AOP对service层所有方法进行日志输出,以及对涉及数据修改的方法进行事务控制,实现异常回滚的时候,在配置文件的<aop:config>中需要同时配置<aop:advisor>和<aop:aspect>,其中前者实现事务管理,后者实现日志输出。

问题:但在实际操作过程中发现日志输出没问题,但异常事务并没有进行回滚操作。

原因分析:后来发现是因为aop的优先级不同,造成执行顺序不一样,而事务的优先级高,所有先执行,造成没有异常回滚。

解决办法:设置order属性,order值越小,优先级越高,把<aop:aspect> 的order设为1,<aop:advisor>的order设为3,问题得到解决

posted @ 2020-05-06 21:34  明月_清风  阅读(1902)  评论(0编辑  收藏  举报