Invocation:读:英窝kai身。意思:求助。Handler: 读:嗨的了。意思:处理器。
InvocationHandler接口叫做调用处理器,负责完调用目标方法,并增强功能。
通 过 代 理 对 象 执 行 目 标 接 口 中 的 方 法 , 会 把 方 法 的 调 用 分 派 给 调 用 处 理 器
(InvocationHandler)的实现类,执行实现类中的 invoke()方法,我们需要把功能代理写在 invoke() 方法中 。
接口中只有一个方法:
在 invoke 方法中可以截取对目标方法的调用。在这里进行功能增强。Java 的动态代理是建立在反射机制之上的。
实现了 InvocationHandler 接口的类用于加强目标类的主业务逻辑。这个接口中有一个方法 invoke(),具体加强的代码逻辑就是定义在该方法中的。通过代理对象执行接口中的方法时,会自动调用 invoke() 方法。
invoke()方法的介绍如下:
| public Object invoke ( Object proxy, Method method, Object[] args) proxy:代表生成的代理对象 method:代表目标方法 args:代表目标方法的参数 |
|---|
- 第一个参数 proxy 是 jdk 在运行时赋值的,在方法中直接使用。
- 第二个参数后面介绍。
第三个参数是方法执行的参数。
这三个参数都是 jdk 运行时赋值的,无需程序员给出。
