开发者社区> 问答> 正文

[@徐雷frank][¥20]spring AOP的实现机制

对spring AOP理解不深

展开
收起
生为coder 2018-11-15 19:28:33 3493 0
4 条回答
写回答
取消 提交回答
  • 建议去看看代理模式(静态代理、动态代理、cglib代理)

    2019-07-17 23:14:50
    赞同 展开评论 打赏
  • 1.阿里云大学讲师,主讲《微服务Spring Cloud设计与开发实战》《MongoDB高级实战》等课程 2.MongoDB中文社区专家 3.《MongoDB实战》第2版译者 5.吉林大学计算机科学学士、上海交通大学硕士

    1、AOP面向切面编程,独立概念
    2、Spring提供了对于AOP编程思想的便捷支持,简化AOP编程,称为Spring AOP,对于代码增强,
    3、Spring AOP主要是2个方式,动态代理和CGLib
    4、提供多种注解,便于实现不同的AOP
    (1)前置增强(BeforeAdvice):在目标方法前调用。

    (2)后置增强(AfterAdvice):在目标方法后调用。

    (3)环绕增强(AroundAdvice):将 Before 和 After ,甚至抛出增强和返回增强合到一起。

    (4)返回增强(AfterReturningAdvice):在方法返回结果后执行。

    (5)抛出增强(AfterThrowingAdvice):在目标方法抛出对应的类型后执行。

    5、JDK 动态代理 —— 推荐方式。只要目标对象实现甚至一个接口, 就会使用 JDK 动态代理;

     CGLIB 代理 —— 如果目标对象没有实现接口, 则可以使用 CGLIB 代理。
    2019-07-17 23:14:50
    赞同 展开评论 打赏
  • 阿里云问答专家、阿里云认证云计算工程师、Java研发工程师

    spring AOP 属于第二代AOP(动态AOP),采用动态代理机制和字节码生成技术实现,与最初的 AspectJ采用编译器将横切逻辑织入目标对象不同,动态代理机制和字节码生成都是在运行期间为目标对象生成一个代理对象,而将横切逻辑织入到这个代理对象中,系统最终使用的是织入了横切逻辑的代理对象,而不是真正的目标对象。

    2019-07-17 23:14:50
    赞同 展开评论 打赏
  • 你可以搜索一下,我理解的也不多

    2019-07-17 23:14:49
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧 立即下载
微服务架构模式与原理Spring Cloud开发实战 立即下载
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库 立即下载