JDK动态代理
来源:互联网 发布:芝加哥人均收入知乎 编辑:程序博客网 时间:2024/06/15 03:34
动态代理主要用来做方法的增强,在不修改源码的情况下,在调用方法执行的前后做你想做的事情,比如添加日志记录、事务控制等。
特点:
通过实现InvocationHandler接口创建自己的调用处理器;
通过为Proxy类执行ClassLoader对象和一组interface来创建动态代理类;
通过反射机制获得动态代理类的构造函数,其唯一参数类型是调用处理器接口类型;
通过构造函数创建动态代理类实例,构造时调用处理器对象作为参数被传入;
接口和实现类:
public interface IHello {public String sayHello(String name);}
public class HelloImpl implements IHello{public String sayHello(String name){System.out.println("--say hello to "+name);return "hello "+name;}}
public class TestProxy {@Testpublic void testProxy(){final IHello hello=new HelloImpl();IHello proxyHello=(IHello) Proxy.newProxyInstance(Thread.currentThread().getContextClassLoader(), new Class[] { IHello.class }, new InvocationHandler() {@Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {System.out.println("--before say hello.");Object object = method.invoke(hello, args);System.out.println("--after say hello.");return object;}});String name="jack";String result=proxyHello.sayHello(name);System.out.println(result);}}
使用动态代理类,在调用IHello接口中sayHello()方法的前后,增加了打印输出,实现了非侵入式的设计。
0 0
- 代理模式,JDK动态代理
- Java动态代理--jdk代理
- 代理模式-JDK动态代理
- JDK中的动态代理
- JDK动态代理
- JDK动态代理
- JDK动态代理
- jdk动态代理(暂)
- JDK动态代理
- JDK动态代理实例
- jdk 动态代理
- JDK动态代理
- JDK动态代理说明
- jdk动态代理
- JDKDynamicProxy JDK动态代理
- JDK动态代理实现
- JDK 动态代理
- JDK动态代理
- Sniffer简介
- sqlplus登录\连接命令、sqlplus命令的使用大全
- Android Service 不被杀死并提高优先级
- 连载二 初学OC
- GRE写作必备句型
- JDK动态代理
- iOS开发之iOS界面UI
- Add IPAD control function into shairplay
- maven报错 Dynamic Web Module 3.0 requires Java 1.6 or newer 解决
- What's Wrong With Hue Oozie Editor?
- 归并排序及具体介绍
- 字符串压缩算法
- OpenDaylight 2015峰会进入倒计时
- 【Eclipse】Eclipse C++ MINGW :The program file specified in the launch configuration does not exist