Spring AOP嵌套调用
来源:互联网 发布:软件模块设计总结 编辑:程序博客网 时间:2024/06/05 20:06
在做日志的时候,我通常是用aop的方式,以降低耦合性,保证业务代码的干净。
之前一直使用的挺好。今天开发反映在嵌套调用的时候日志没有起作用。
场景如下:
A调用B.a方法,B.a上的拦截是有用的。B.a里调用了B.b,在B.b上也同样有拦截注解,但是没有起作用。
其实这个没起作用是很正常的,因为Spring aop是基于bean的,而B.a里调用B.b,其中这个B已经不是spring中的代理产生的B,而是this,也就是解除代理壳子的B的真身,那么当然aop是不会起作用的。
要解决这个问题,最简单的方法是把自身注入到自身,用注入的这个自身去调用本方法。
或者你也可以不用spring aop而是用aspectj weaving,倒是可以测底的解决该问题。
其实到这里,也只是为了解决问题而解决问题。但是请细想下,为什么会出现这种情况?是不是设计不合理。
加业务日志的方法为什么不是一个完整而独立的业务,
加业务日志的方法为什么会被另一个业务方法调用,既然会调用,说明这个是一个公共的逻辑,是组成多个共同业务的公共逻辑,为什么不提出来?
0 0
- Spring AOP嵌套调用
- Spring AOP 嵌套AOP
- Spring AOP 是否支持嵌套
- Spring Transaction 嵌套调用
- Spring AOP为什么不能拦截同一个对象内方法的嵌套调用(一)
- Spring AOP为什么不能拦截同一个对象内方法的嵌套调用
- Spring AOP对嵌套方法不起作用
- 关于Spring AOP无法嵌套拦截
- Spring AOP对嵌套方法不起作用
- spring aop之对象内部方法间的嵌套失效
- Spring中解决Aop 事务嵌套回滚问题
- spring aop之对象内部方法间的嵌套失效
- spring aop 无法在内部嵌套的方法上生效
- spring 事宜方法嵌套调用的迷茫
- Spring JDBC-事务方法嵌套调用解读
- Spring的AOP子调用拦截问题
- spring aop(六)--代理调用机制
- Spring AOP拦截器调用实现
- 你如何生成m个数让其和等于n
- android的窗口机制分析------UI管理系统 .
- 手动发送xml报文调用webservice
- sitemesh
- UV420数据格式
- Spring AOP嵌套调用
- iOS开发资源合集——UI篇
- sqlserver 转义字符
- android 混淆配置proguard 原理
- 2013新炬数据库大师高校巡讲会—华南理工大学工程硕士专场
- JQuery选择器1
- 培根人生论之论消费
- left outer join 的简单总结
- C#中的where泛型约束中的new()