1,原理:
Spring AOP底层原理采用运行时生成动态代理的方式来增强目标对象。AOP 代理其实是由 AOP 框架动态生成的一个对象,该对象可作为目标对象使用。
AOP 代理包含了目标对象的全部方法,但 AOP 代理中的方法与目标对象的方法存在差异:AOP 方法在特定切入点添加了增强处理,并回调了目标对象的方法。
2,两种方式:
Spring AOP 框架对 AOP 代理类的处理原则是:如果目标对象的实现类实现了接口,Spring AOP 将会采用 JDK 动态代理来生成 AOP 代理类,即JDK 提供的
Proxy 和 InvocationHandler来实现;如果目标对象的实现类没有实现接口,Spring AOP 将会采用 CGLIB 来生成 AOP 代理类
参考文章:https://www.ibm.com/developerworks/cn/java/j-lo-springaopcglib/index.html
网友评论