java动态代理-InvocationHandler Proxy
来源:互联网 发布:餐饮纯利润怎么算法 编辑:程序博客网 时间:2024/05/13 01:43
<!-- /* Font Definitions */ @font-face{font-family:宋体;panose-1:2 1 6 0 3 1 1 1 1 1;mso-font-alt:SimSun;mso-font-charset:134;mso-generic-font-family:auto;mso-font-pitch:variable;mso-font-signature:3 135135232 16 0 262145 0;}@font-face{font-family:"/@宋体";panose-1:2 1 6 0 3 1 1 1 1 1;mso-font-charset:134;mso-generic-font-family:auto;mso-font-pitch:variable;mso-font-signature:3 135135232 16 0 262145 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal{mso-style-parent:"";margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;mso-pagination:none;font-size:10.5pt;mso-bidi-font-size:12.0pt;font-family:"Times New Roman";mso-fareast-font-family:宋体;mso-font-kerning:1.0pt;} /* Page Definitions */ @page{mso-page-border-surround-header:no;mso-page-border-surround-footer:no;}@page Section1{size:612.0pt 792.0pt;margin:72.0pt 90.0pt 72.0pt 90.0pt;mso-header-margin:36.0pt;mso-footer-margin:36.0pt;mso-paper-source:0;}div.Section1{page:Section1;} /* List Definitions */ @list l0{mso-list-id:256713394;mso-list-template-ids:-1699456634;}@list l1{mso-list-id:292448747;mso-list-template-ids:1567683388;}@list l2{mso-list-id:1199665814;mso-list-template-ids:1173917332;}@list l3{mso-list-id:1333723713;mso-list-template-ids:1064840542;}@list l4{mso-list-id:2066417278;mso-list-template-ids:-1552372328;}ol{margin-bottom:0cm;}ul{margin-bottom:0cm;}-->
实现动态代理:
真实的接口:
Java代码
- public interface Hello {
- void sayHello(String to);
- void print(String p);
- }
它的真实实现类:
Java代码
- public class HelloImpl implements Hello {
- public void sayHello(String to) {
- System.out.println("Say hello to " + to);
- }
- public void print(String s) {
- System.out.println("print : " + s);
- }
- }
在这里生成与代理类相关联的InvocationHandler对象
Java代码
- public class LogHandler implements InvocationHandler {
- private Object dele;
- public LogHandler(Object obj) {
- this.dele = obj;
- }
- public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
- doBefore();
- //在这里完全可以把下面这句注释掉,而做一些其它的事情
- Object result = method.invoke(dele, args);
- after();
- return result;
- }
- private void doBefore() {
- System.out.println("before....");
- }
- private void after() {
- System.out.println("after....");
- }
- }
最后是测试类:
Java代码
- public class ProxyTest {
- public static void main(String[] args) {
- HelloImpl impl = new HelloImpl();
- LogHandler handler = new LogHandler(impl);
- //这里把handler与impl新生成的代理类相关联
- Hello hello = (Hello) Proxy.newProxyInstance(impl.getClass().getClassLoader(), impl.getClass().getInterfaces(), handler);
- //这里无论访问哪个方法,都是会把请求转发到handler.invoke
- hello.print("All the test");
- hello.sayHello("Denny");
- }
- }
这里是输出结果:
Java代码
- before....
- print : All the test
- after....
- before....
- Say hello to Denny
- after....
- java动态代理-InvocationHandler Proxy
- Java动态代理InvocationHandler+Proxy
- 动态代理 Proxy InvocationHandler
- 动态代理proxy ,InvocationHandler
- 动态代理 Proxy InvocationHandler
- java 动态代理学习(Proxy,InvocationHandler)
- java 动态代理深度学习(Proxy,InvocationHandler)
- java 动态代理学习(Proxy,InvocationHandler)
- JAVA动态代理实现 Proxy InvocationHandler
- JAVA JDK 动态代理 proxy invocationHandler
- java 动态代理深度学习(Proxy,InvocationHandler)
- Java 动态代理(proxy、invocationHandler)
- Java动态代理用法(Proxy + InvocationHandler)
- java 动态代理学习(Proxy,InvocationHandler)
- java 动态代理范例 InvocationHandler与Proxy
- java 动态代理学习(Proxy,InvocationHandler)
- java 动态代理学习(Proxy,InvocationHandler)
- java动态代理例子(Proxy,InvocationHandler)
- 数据库三级模式
- Android rorate Animation
- java里面的基本语法
- Flash 与数学:圆的切线(4)
- Form验证
- java动态代理-InvocationHandler Proxy
- JSP中文乱码问题 页面经过过滤器后得到的是中文,但插入到MYSQL数据库却成了乱码,的问题解决方法。
- slickedit 破解方法
- 用name作为参数查询记录时,页面中显示中文名字时出现乱码的解决方法!
- gxcfgf
- 简简单单 就是我
- [邮件]发送多人MAIL类
- 如何架设WOW私服
- [邮件]简单MAIL发送类