AOP 大致流程

发布于 2024-04-04 12:47:23 字数 543 浏览 48 评论 0

AOP 是面向切面编程,实际上是通过动态代理实现。Spring 在 Bean 的创建过程中的最后一步去判断这个 Bean 是否需要进行 AOP,如果需要则进行动态代理。

判断是否需要动态代理步骤

  1. 找出所有的切面 Bean
  2. 遍历切面中的每个方法,判断是否有 @Before、@After 等 AOP 注解
  3. 如果有,则判断对应的 Pointcut 是否和当前 Bean 对象的类是否匹配
  4. 如果匹配表示当前 Bean 对象有匹配的 Pointcut,表示需要进行 AOP

cglib 进行 AOP 的大概流程:

  1. 生成代理类的 xxxProxy,并且代理类需要继承 xxx 类
  2. 代理类中重写父类的方法
  3. 代理类中有 target 属性,这个属性的值为被代理对象(Spring 通过构造方法实例化并且注入对应属性的类)
  4. 代理类中的 test() 方法执行逻辑
    1. 执行切面逻辑(@Before)
    2. 调用目标方法

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

风吹雨成花

暂无简介

文章
评论
29 人气
更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文