AOP 大致流程
AOP 是面向切面编程,实际上是通过动态代理实现。Spring 在 Bean 的创建过程中的最后一步去判断这个 Bean 是否需要进行 AOP,如果需要则进行动态代理。
判断是否需要动态代理步骤
- 找出所有的切面 Bean
- 遍历切面中的每个方法,判断是否有 @Before、@After 等 AOP 注解
- 如果有,则判断对应的 Pointcut 是否和当前 Bean 对象的类是否匹配
- 如果匹配表示当前 Bean 对象有匹配的 Pointcut,表示需要进行 AOP
cglib 进行 AOP 的大概流程:
- 生成代理类的 xxxProxy,并且代理类需要继承 xxx 类
- 代理类中重写父类的方法
- 代理类中有 target 属性,这个属性的值为被代理对象(Spring 通过构造方法实例化并且注入对应属性的类)
- 代理类中的 test() 方法执行逻辑
- 执行切面逻辑(@Before)
- 调用目标方法
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

上一篇: Spring IOC 介绍
下一篇: 彻底找到 Tomcat 启动速度慢的元凶
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论