Spring AOP使用jdk动态代理技术在运行期编织入增强的代码。
1.1 jdk动态代理
JDK的动态代理主要涉及java.lang.reflect包中的两个类:Proxy和InvocationHandler.其中,InvocationHandler是一个接口,可以通过实现该接口定义横切逻辑,并通过反射机制调用目标类的代码,动态地将横切逻辑和业务逻辑编织在一起。而Proxy利用InvocationHandler动态创建一个符合某一个接口实例,生成目标类的代理对象。具体代码如下:
1.1.1实际代码:
(1)实现InvocationHandler接口
(2)创建接口的代理实例