AOP 实现方式有三种

  1.  cglib库实现,对 Java字节码进行重新编译,将切面插入宇节码的某些点和面上 。
  2. · 定制类加载器,在类加载时对字节码进行补充,在字节码中插入切面,增加了除业务逻 辑外的功能, JVM 自身提供的 Java Agent 机制就是在加载类的宇节码时,通过增加切 面来实现 AOP 的。JVM 本身提供了动态代理组件,可以通过它实现任意对象的代理模式,在代理的过程中可 以插入切面的逻辑。可以使用 Java提供的 APIProxy.newProxylnstanceO和 InvocationHandler 来实现。
  3.  AspectJ是实现 AOP 的专业框架和平台,通过 AspectJ可以实现任意方式的字节码切 面, Spring框架完全支持 AspectJ。

你可能感兴趣的:(JAVA)