Spring AOP 源码记录:

1.AOP 入口ProxyFactoryBean.getObject()方法;

2.AOP实现:

(1)实现InvocationHandler接口

(2)通过java.lang.reflect.Proxy.newProxyInstance生成代理类

3.JDK与cglib动态代理的区别

(1)JDK动态代理生成的class都是基于反射去调用,所以调用性能低。

(2)cglib动态代理生成的class是继承原有class并且重写父类的方法,所以调用性能高,但是无法代理Final关键字修饰的class和方法。

4.使用<aop:aspectj-autoproxy proxy-target-class="true"/>注解源码解析

(1)使用该注解以后,Spring解析注解时会将AnnotationAwareAspectJAutoProxyCreator注入到容器当中,而该类是实现了BeanPostProcessor接口的

(2)AnnotationAwareAspectJAutoProxyCreator会自动查找带@Aspect注解的class

(3)最后在AnnotationAwareAspectJAutoProxyCreator的postProcessAfterInitialization(Object bean, String beanName)方法中生成对象的代理对象并且替换原对象。

最新文章

  1. 微信小程序体验(1):携程酒店机票火车票
  2. jar hell &amp; elasticsearch ik 版本问题
  3. Interview website
  4. SpringMVC学习记录5
  5. Effective java笔记(八),异常
  6. 基于spring和Quartz定时器
  7. 管道命令和xargs的区别(经典解释)
  8. 关于 js 2个数组取差集怎么取
  9. GCD 单例
  10. Qt 界面使用自己定义控件 &amp;quot;提升为&amp;quot;
  11. KMP算法之查找模式串在源串中出现的次数
  12. 提问!同一ajax请求获取的图片路劲,在谷歌浏览器能正确展示图片,在火狐浏览器则显示路径undefined
  13. Android开发遇到手机无法弹出Toast
  14. iOS开发之UIWindow
  15. 2.Maven 使用
  16. 如何创建测试程序调试nginx数据结构
  17. 错误:set Assigning an instance of &#39;esri.***&#39; which is not a subclass of &#39;esri.***‘
  18. gstreamer
  19. Python 数据结构--查找
  20. Android-Recyclerview的简单使用

热门文章

  1. 深入分析Java Web技术内幕(修订版)
  2. fir.im Weekly - 94 个 iOS 开发资源推荐
  3. easyui combotree下拉框多选赋值
  4. [ASP.net MVC] 将HTML转成PDF档案,使用iTextSharp套件的XMLWorkerHelper (附上解决显示中文问题)
  5. No compatible targets were found.Do you wish to...的解决方案。
  6. rabbitMQ第三篇:采用不同的交换机规则
  7. 使用SQL Server Audit记录数据库变更
  8. 了解HTML表单之13个表单控件
  9. 编写可编辑的List控件
  10. 设为首页 和 收藏本站js代码 兼容IE,chrome,ff