spring AOP JDK动态代理实现

首先创建一个接口 UserDao

 然后创建一个实现类 UserDaoImpl

 当我们需要对已有的接口进行增强时,我们就可以使用Proxy,创建接口的代理对象

对于Proxy类的newProxyInstance方法的第三个参数,可以使用匿名内部类,如上。也可以通过创建实现InvocationHandler的方法传入。

 我们通过这个实现InvocationHandler接口的类创建Proxy对象

 为了能增强UserDao的功能,我们需要把UserDao传入我们的UserDaoProxy类中,这样可以调用UserDao已经实现的方法。做法是利用有参构造函数。

 然后我们实现增强的逻辑

 这样我们就可以用代理对象来增强已有方法了

执行结果:

原文地址:https://www.cnblogs.com/superxuezhazha/p/13603492.html