==================== JDK动态代理_额外功能 ==================== 代理三要素: - 原始对象 - 额外功能 - 代理对象和原始对象实现相同的接口 原始对象 | UserService userService = new UserServiceImpl(); Proxy.newProxyInstance(classLoader, interfaces, invocationHandler); | | | 类加载器 原始对象实现的接口 额外功能 ____________________________________________| v 实现InvocationHandler接口,改写其中的方法 { Object invoke(Object proxy, Method method, Object[] args) { | | | | 返回原始方法 代理对象 原始方法 传给原始方法 的返回值 (忽略) 的参数表 ... \ // 反射调用原始方法,传入参数 额外 Object object = method.invoke(userService, args); 功能 ... / return object; // 返回原始方法的返回值 } }