1、配置ProxyFactoryBean

Spring IOC容器中创建Spring AOP的方法。

(1)配置ProxyFactoryBean的Advisor通知器

通知器实现定义了对目标对象进行增强的切面行为,即Advice通知。

(2)定义ProxyFactoryBean类

设定实现AOP的重要属性,如proxyInterface、interceptorNames、target等。

interceptorNames:需要定义的通知器,通知器在proxyFactoryBean的配置下,通过代理对象起到拦截器的作用。

(3)定义target属性

通过target注入的bean,是需要通过AOP切面增强的对象。

2、ProxyFactoryBean生成的AOPproxy对象

具体实现需要通过动态代理特性。

AOPproxy对象生成流程:

(1)以FactoryBean的getObject()为入口开始,通过getObject方法调用inITIallizeAdvisorChain()方法。

(2)通过inITIallizeAdvisorChain方法初始化advisor链,初始化时提供一个标志位,确定是否初始化。如果未曾初始化过,通过ProxyFactoryBean获取代理对象之后完成初始化,初始化后读取配置中的通知器,通过getbean(name)方法获取通知器。

3、JDK生成AopProxy代理对象

(1)AopProxy接口中实现JdkDynamicAopProxy方法,在方法中调用JDK的Proxy类来生成代理对象.

(2)生成代理对象前,需要从advised对象中取得代理对象的代理接口配置,然后调用Proxy类的newProxyInstace方法来得到对应的Proxy代理对象。

  生成代理对象时,需要阐明三个参数:类装载器、代理接口、Proxy回调方法所在的对象。

  Proxy回调的方法所在的对象需要实现InvocationHandler接口,接口中定义了invoke方法,提供代理对象的回调入口。

最新文章

  1. NoSQL初探之人人都爱Redis:(4)Redis主从复制架构初步探索
  2. 如何让NGUI的对象在3D模型之上
  3. C#操作FTP报错,远程服务器返回错误:(550)文件不可用(例如,未找到文件,无法访问文件)的解决方法
  4. ASP.NET MVC 快速开发框架之 SqlSugar+SyntacticSugar+JQWidgetsSugar+jqwidgets
  5. 7 天玩转 ASP.NET MVC — 第 4 天
  6. php遍历目录输出目录及其下的所有图片文件
  7. windows下mysql备份、还原,使用mysqldump
  8. Oracle常用查询
  9. 【OpenCV】一种基于阈值的图片中的文字分割
  10. VIM 自定义语法高亮配置
  11. jQuery入门学习
  12. node.js 学习笔记一
  13. python全栈开发笔记---------变量小结
  14. R语言-画线图
  15. font:12px/1.5 tahoma, arial, \5b8b\4f53, sans-serif详解
  16. Python【多线程与多进程】
  17. BZOJ2595:[Wc2008]游览计划——题解(插头dp)
  18. Flask之flask-session
  19. Vim技能修炼教程(12) - Vim的脚本语言支持
  20. 洛谷P1186 玛丽卡 spfa+删边

热门文章

  1. Windows server 2008 搭建DNS服务
  2. CKA认证经验贴(认证日期:20200817)
  3. Selenium使用cookis登录,并临时将cookis存储在本地【shelve数据库】
  4. 英文ubuntu中的乱码,输入法问题 、mint字体发虚
  5. 微信小程序授权登录--PHP后端接口
  6. 题解 洛谷P2434 【[SDOI2005]区间】
  7. 6 vue-element.ui 左侧导航栏
  8. SpringMVC-08-整合SSM之基本环境搭建
  9. 【Flutter 实战】各种各样形状的组件
  10. 跟着兄弟连系统学习Linux-【day06】