Java 动态代理简单示例
来源:互联网 发布:android 8源码 编辑:程序博客网 时间:2024/06/13 01:59
接口和实现类:
package dongtaidaili;public interface Interface { void doSomething(); void somethingElse(String arg);}
package dongtaidaili;public class RealObject implements Interface{@Overridepublic void doSomething() {System.out.println("开火车.....");}@Overridepublic void somethingElse(String arg) { System.out.println("开汽车.... " + arg);}}
动态代理对象处理器
package dongtaidaili;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;public class DynamicProxyHandler implements InvocationHandler{private Object proxyed;//代理对象 public DynamicProxyHandler(Object proxyed) { this.proxyed = proxyed; }@Overridepublic Object invoke(Object proxy, Method method, Object[] args)throws Throwable { System.out.println("代理工作了."); return method.invoke(proxyed, args);}}
测试类:
package dongtaidaili;import java.lang.reflect.Proxy;public class Main {public static void main(String[] args) { //初始化一个实际对象 RealObject real = new RealObject(); //实例化接口对象 Interface proxy = (Interface) Proxy.newProxyInstance( Interface.class.getClassLoader(), new Class[] {Interface.class}, new DynamicProxyHandler(real)); proxy.doSomething(); proxy.somethingElse("ooooppp");//代理类通过调用Proxy静态方法Proxy.newProxyInstance()可以创建动态代理, // 这个方法需要得到 // 1.一个类加载器, // 2.一个你希望该代理实现的接口列表(不是类或抽象类) // 3.以及InvocationHandler的一个实现类。 // 动态代理可以将所有调用重定向到调用处理器,因此通常会调用处理器的构造器传递一个”实际”对象的引用, // 从而将调用处理器在执行中介任务时,将请求转发。}}
打印运行结果:
代理工作了.
开火车.....
代理工作了.
开汽车.... ooooppp
阅读全文
0 0
- Java 动态代理简单示例
- java动态代理设计模式简单示例
- java简单的动态代理示例
- Java 动态代理示例
- 动态代理的简单示例
- Java动态代理示例代码
- Java动态代理示例代码
- java 代理模式简单示例
- 简单的Java代理示例 静态代理
- Java动态代理简单实现
- java动态代理简单实例
- java动态代理简单实例。
- java 动态代理简单回顾
- java动态代理简单实例
- Java动态代理简单应用
- java动态代理【简单实例】
- Java动态代理简单入门
- java动态代理简单总结
- 前端如何做好网站优化
- resultMap映射数据错误问题
- NSUserDefaults 中对象为nil和@""
- JS-Vue/基于Vue.js的时钟
- Java基础(1)
- Java 动态代理简单示例
- Postman使用官方文档翻译--2发送请求
- React高阶组件
- 前端秋招总结[二]
- 一位资深程序员大牛给予Java初学者的学习路线建议
- 【linux】实现账户登录就执行特定命令
- 每日一记:2017.11.6
- 【maven】maven中央仓库改为阿里云的仓库,增快下载速度。
- Visio的灵活使用