AOP通知,切入指定方法时拦截不到,可能是拦截的方法本身是被本类的其他方法调用的,根据AOP反射原理是无法拦截本类中方法调用的方法的。如:

 class AImpl implements AIf {

   sleep(){

     say();

   }

   say(){

     System.out.println("我是被本类的其它方法调用的");

   }

 }

AImpl类中sleep()方法中调用了本类中的say()方法,如果用aop切入点去拦截sleep()方法,则可以正常拦截,若拦截say()方法,则无法拦截。解决方案为使用动态代理,流程如下:

①:创建代理接口

 public interface BeanSelfAware {
void setSelf();
}

②:实现代理接口,获得上下文环境的对象,把自身对象注入给本类

 1  class AImpl implements AIf,BeanSelfAware {
2 @Autowired //① 注入上下文
3 private ApplicationContext context;
4
5 private AIf aIf;
6   sleep(){
7
8     aIf.say();
9
10   }
11
12   say(){
13
14     System.out.println("我是被本类的其它方法调用的");
15
16   }
17 //获得自身对象
18 @PostConstruct
19 public void setSelf() {
20 this.aIf= context.getBean(AIf.class);
21 }
22
23 }

这样 aop就可正常拦截say()方法了

最新文章

  1. Duilib改进窗口拖动,使整个窗口都能拖动两种方法(转载)
  2. 数据库开发基础-SQl Server 视图
  3. 谈谈JavaScript MVC模式
  4. js广告弹窗
  5. 转:TimeSpan的用法
  6. Ado.Net要知道的东西
  7. HDU5597/BestCoder Round #66 (div.2) GTW likes function 打表欧拉函数
  8. Android基础_2 Activity线性布局和表格布局
  9. delphi获取mdb密码
  10. device tree website
  11. Google Maps Android API v2 (3)- 地图添加到Android应用程序
  12. Laravel 用户验证Auth::attempt fail的问题
  13. Hadoop新生报到(一) hadoop2.6.0伪分布式配置详解
  14. MySQL事务以及隔离级别
  15. Netty学习笔记(四) 简单的聊天室功能之服务端开发
  16. “ORA-12154: TNS: 无法解析指定的连接标识符”错误解决办法
  17. selenium中的对文本进行全选,复制,粘贴,剪切和删除的操作
  18. 转载:如何在Ubuntu 18.04上使用UFW设置防火墙
  19. .Net Core项目添加日志功能
  20. 学会4种备份MySQL数据库(基本备份方面没问题了)

热门文章

  1. android.view.animation(2) - 插值器Interpolator
  2. linux如何查看CPU,内存,机器型号,网卡信息
  3. python学习笔记(10)--爬虫下载煎蛋图片
  4. Keil的使用方法(汇总)
  5. Cocos2d-x 3.0final 终结者系列教程07-画图节点Node
  6. Istio流量管理实现机制深度解析
  7. 用户控件(ASCX)向网页(ASPX)传值使用反射实现
  8. Linux下Apache与httpd的区别与关系
  9. React Native开发技术
  10. 使用webdriverwait封装查找元素方法