AOP实现的关键在于AOP框架自动创建的AOP代理,AOP代理主要分为静态代理和动态代理,静态代理的代表为AspectJ;而动态代理则以Spring AOP为代表。静态代理是编译期实现,动态代理是运行期实现。
定义:是一种常用的设计模式
概念: 通过代理对象访问目标对象。
三种代理模式:
静态代理:需要定义接口或父类,代理对象和目标对象实现相同的接口(目标对象需要实现接口)
JDK动态代理:利用JDK的API,动态的在内存中构建代理对象(目标对象需要实现接口)
Cglib动态代理:基于继承的方式,以目标对象子类的方式实现代理(目标对象不需要实现接口)