0%

统一记录日志

AOP的实现

  • AspectJ
    • 语言级的实现,扩展了Java语言,定义了AOP语法
    • 在编译期织入代码,它有一个专门的编译器,用来生成遵守Java字节码规范的class文件
  • Spring AOP
    • Spring AOP使用Java实现,不需要专门的编译过程,也不需要特殊的类加载器
    • Spring AOP在运行时通过代理的方式织入代码,只支持方法类型的连接点
    • 支持对AspectJ的集成

Spring AOP

  • JDK动态代理
    • Java提供的动态代理技术,可以在运行时创建接口的代理实例
    • Spring AOP默认采用此种方式,在接口的代理实例中织入代码
  • CGLib动态代理
    • 采用底层的字节码技术,在运行时创建子类代理实例
    • 当目标对象不存在接口时,Spring AOP会采用此种方式,在子类中织入代码
------ THEEND ------

欢迎关注我的其它发布渠道