首先定义一个抽象接口,JDK代理要求目标对象必须实现接口。(个人觉得这个应该是基于接口编程)
以UserManager接口为例。在里面我们定义了一个add方法。
接下来定义接口实现类。为了简洁只是向客户端输出一句话。
下面是我们的动态代理类。代理类实现了java.lang.reflect.InvocationHandler接口。
动态代理机制用到jave反射方面的api,反射方面的资料往上很多的。不清楚的可以先查阅读一下
代理类我添加很多注释。应该很清楚了。这里我简单说一下流程:当代理对象被调用的时候先会执行invoke方法,在此方法里面我们可添加
自己的业务逻辑代码,然后才会执行目标对象的真实方法:method.invoke(this.targetObject, args);目标对象方法可能会有返回值,在这
里当存在返回值的时候我们返回一个Object.
下面代码是客户端调用和调用结果:
控制台输出结果:
这是代理方法
用户 : 张三 添加成功