java设计模式--代理模式(三)
来源:互联网 发布:用ps淘宝详情页怎么做 编辑:程序博客网 时间:2024/05/11 08:34
上一节讲了jdk动态代理,这节讲引入第三方jar包的动态代理
//CglibProxy.javaimport java.lang.reflect.Method;import net.sf.cglib.proxy.Enhancer;import net.sf.cglib.proxy.MethodInterceptor;import net.sf.cglib.proxy.MethodProxy;public class CglibProxy implements MethodInterceptor {private Enhancer enhancer = new Enhancer();public Object getProxy(Class clazz){//设置创建子类的类enhancer.setSuperclass(clazz);enhancer.setCallback(this);return enhancer.create();}/** * 拦截所有目标类方法的调用 * obj 目标类的实例 * m 目标方法的反射对象 * args 方法的参数 * proxy代理类的实例 */@Overridepublic Object intercept(Object obj, Method m, Object[] args,MethodProxy proxy) throws Throwable {System.out.println("日志开始...");//代理类调用父类的方法proxy.invokeSuper(obj, args);System.out.println("日志结束...");return null;}}
//Train.javapublic class Train {public void move(){System.out.println("火车行驶中...");}}
//测试public class Client {public static void main(String[] args) {CglibProxy proxy = new CglibProxy();Train t = (Train)proxy.getProxy(Train.class);t.move();}}结果:
汽车开始行驶....
汽车行驶中....
汽车结束行驶.... 汽车行驶时间:274毫秒!
阅读全文
0 0
- java设计模式--代理模式(三)
- JAVA设计模式之三:代理模式
- Java/Android设计模式<三> 代理模式
- JAVA设计模式(三)静态与动态代理模式
- 设计模式(三) ----代理模式
- 设计模式(三)--代理模式
- 设计模式三 代理模式
- 三.设计模式-代理模式
- 设计模式<三>代理模式
- java设计模式(4)--代理模式
- JAVA设计模式(一)代理模式
- JAVA设计模式- 代理模式(Proxy)
- Java设计模式(代理模式)
- java设计模式(七)---代理模式
- Java设计模式----代理模式(Proxy)
- java设计模式(四)--代理模式
- Java设计模式(八)----代理模式
- JAVA设计模式--代理模式(静态)
- 39. Combination Sum
- 使用IntelliJ IDEA开发SpringMVC网站(四)用户管理
- oracle 创建 dblink
- 最短路问题 Dijkstra标号法
- python调试pdb
- java设计模式--代理模式(三)
- easyui easyui-layout 调整布局大小
- KETTLE整库迁移方案(SQL server迁移至Mysql,迁移过程自动创建表结构)
- SVN 学习笔记
- cocosstudio3.0版本以上动画在C++中使用浅析
- ejb是什么?
- python刷博客访问量
- X265源码下载地址
- 欧拉函数概念及其证明