最近遇到个问题,服务端框架被重新构建后,发现spring里配置的@Transaction失效了,报了hibernate session未绑定的错误:
具体流程是:
1.注册函数:

2.反射调用这个注册的方法

这个invoke的 _this就是上面注册时候的this
其中_onLogin方法是有@transaction的,但是从debug的结果可以看出来,这个方法并没有被AOP代理,所以自然没有处理transaction。
原因就在于invoke的_this,并不是spring的代理类,也就是说 是脱离spring管理的类,所以aop不起作用自然正常
改造方法有两种:
注册函数的时候 this,使用spring的代理类

或者
反射调用的时候,使用spring的代理类

这样其实这个wearver其实是被spring代理的,从debug模式下可以看到是被GCLIB代理的,被spring管理了。这

本文详细介绍了如何将Spring框架与AspectJ进行集成,通过AOP实现切面编程。首先讲解了注册AspectJ的相关配置,然后探讨了在Spring中使用AspectJ的注解和XML配置方式,最后展示了实际应用示例。
最低0.47元/天 解锁文章
469

被折叠的 条评论
为什么被折叠?



