aop是ioc的一个扩展功能,先有的ioc,再有的aop,只是在ioc的整个流程中新增的一个扩展点而已:BeanPostProcessor

底层实现用的是动态代理

AOP应用场景

场景一: 记录日志

场景二: 监控方法运行时间 (监控性能)

场景三: 权限控制

场景四: 缓存优化 (第一次调用查询数据库,将查询结果放入内存对象, 第二次调用, 直接从内存对象返回,不需要查询数据库 )

场景五: 事务管理 (调用方法前开启事务, 调用方法后提交关闭事务 )

bean的整个创建过程中有一个步骤可以对bean进行扩展实现,aop本身就是一个扩展功能,所以在BeanPostProcessor的后置处理方法中,来进行实现。

 1、代理对象的创建过程(advice,切面,切点)

 2、通过jdk或者cglib的方式来生成代理对象

 3、在执行方法调用的时候,会调用到生成的字节码文件中,直接会找到DynamicAdvicedInterceptor类中的intercept方法,从此方法开始执行

 4、根据之前定义好的通知来生成拦截器链

 5、从拦截器链中依次获取每一个通知开始进行执行,在执行过程中,为了方便找到下一个通知是哪一个,会有一个InvocationInterceptor的对象,找的时候是从-1开始查找并且执行的。

最新文章

  1. 阅读笔记Multi-task Learning for Stock Selection [NIPS1996]
  2. javascript 中的事件机制
  3. D_S 线性结构
  4. Java 链式编程
  5. 针对access数据库的增删改查
  6. Bctf-pwn_ruin-re_lastflower
  7. jquery 实现飘落效果
  8. JavaScript中的面向对象程序设计
  9. WebService学习------小实例开发(号码归属地查询)
  10. 卸载windows补丁
  11. 7.4 GRASP原则四:控制器 Controller
  12. 基于JMH的Benchmark解决方案
  13. SHOW Syntax
  14. Linq的执行效率及优化
  15. 【托业】【新托业TOEIC新题型真题】学习笔记4-题库一->P7
  16. hdu3879 最大权闭合回路
  17. 用js实现回车登录而不用点击登录按钮
  18. 【大数据系列】Hadoop DataNode读写流程
  19. Javascript异步执行时要小心的变量作用域
  20. 在控制终端输入AT命令

热门文章

  1. HDU-1004(C语言描述)
  2. Cesium中级教程2 - 图层
  3. 记录ABAP开发的日常——SAP_PO开发同步接口案例
  4. 百度云管家使用socks代理无法上传下载解决办法
  5. gin框架中的参数验证
  6. golang中的并发安全和锁
  7. Flutter 多引擎支持 PlatformView 以及线程合并解决方案
  8. GitHubPages的域名解析信息
  9. vivo直播应用技术实践与探索
  10. 通俗讲解IP地址的端口