AOP失效,事务失效
条评论场景还原(Transaction是由aop实现)
1 |
|
请求进来,到Controller.test(),该方法调用AopTest.methodA()。此时只有methodA的事务会生效
原因分析
aop实现的方式是生成一个动态的代理对象去调用aop方法。
因为@Transaction是由aop实现的,aop的方法,会生成一个代理对象去调用,Controller注入的AopTest对象是一个代理对象,在controller调用methodA会按照aop的过程执行,所以methodA的事务会生效。但是在mthodA中调用methodB,是由当前对象直接调用,所有methodB的事务不会生效。
解决办法
1 | @Component |
- 本文链接:https://www.ofcoder.com/2018/05/25/java/AOP%E5%A4%B1%E6%95%88%EF%BC%8C%E4%BA%8B%E5%8A%A1%E5%A4%B1%E6%95%88/
- 版权声明:Copyright © 并发笔记 - ofcoder.com. Author by far.
分享