- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
代理模式之Java动态代理实现方法
今天一个偶然的机会我突然想看看JDK的动态代理,因为以前也知道一点,而且只是简单的想测试一下使用,使用很快里就写好了这么几个接口和类,需要的朋友可以参考下
今天一个偶然的机会我突然想看看JDK的动态代理,因为以前也知道一点,而且只是简单的想测试一下使用,使用很快里就写好了这么几个接口和类:接口类:UserService.java
复制代码 代码如下:
package xy;public interface UserService {public int save() ;public void update(int id);}
实现类:UserServiceImpl.java
复制代码 代码如下:
package xy;public class UserServiceImpl implements UserService {@Overridepublic int save() {System.out.println("user save....");return 1;}@Overridepublic void update(int id) {System.out.println("update a user " + id);}}
然后猴急猴急的就写好了自己要的InvocationHandler:这个的功能是很简单的就是记录一下方法执行的开始时间和结束时间TimeInvocationHandler.java
复制代码 代码如下:
package xy;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;public class TimeInvocationHandler implements InvocationHandler {@Overridepublic Object invoke(Object proxy, Method method, Object[] args)throws Throwable {System.out.println("startTime : " +System.currentTimeMillis());Object obj = method.invoke(proxy, args);System.out.println("endTime : " +System.currentTimeMillis());return obj;}}
所有的准备工作都弄好了 当然要开始写测试了!Test.java
复制代码 代码如下:
package xy;import java.lang.reflect.Proxy;public class Test {public static void main(String[] args) { 9 TimeInvocationHandler timeHandler = new TimeInvocationHandler();UserService u = (UserService) PnewProxyInstance(UserServiceImpl.class.getClassLoader(), UserServiceImpl.class.getInterfaces(), timeHandler);u.update(2);u.save();}}
愉快地Run了一下,不过它并不给你面子 结果是满屏幕的异常:
复制代码 代码如下:
startTime : 1352877835040startTime : 1352877835040startTime : 1352877835040Exception in thread "main" java.lang.reflect.UndeclaredThrowableExceptionat $Proxy0.update(Unknown Source)at xy.Test.main(Test.java:11)Caused by: java.lang.reflect.InvocationTargetExceptionat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)at sun.reflect.DelegatingMethodAccessorImpl.invoke(Delegatin
您可能关注的文档
- java动态代理(jdk与cglib)详细解析.doc
- java动态代理和cglib动态代理示例分享.doc
- 详解使用Java原生代理实现AOP实例.doc
- java使用动态代理来实现AOP(日志记录)的实例代码.doc
- 实例讲解Java设计模式编程中如何运用代理模式.doc
- Java设计模式之代理模式(Proxy模式)介绍.doc
- Java编写掷骰子游戏.doc
- Java实现解数独的小程序.doc
- 第6课《老山界》公开课一等奖创新教案 统编版语文七年级下册.docx
- 7妈妈睡了 公开课一等奖创新教学设计.docx
- 一病一品护理汇报(手工精品图文).ppt
- 国家义务教育质量监测四年级心理健康测试卷3+问卷(通用版附答案).docx
- 国家义务教育质量监测四年级心理健康测试卷2+问卷(通用版附答案).docx
- 国家义务教育质量监测四年级心理健康测试卷5+问卷(通用版附答案).docx
- 国家义务教育质量监测四年级心理健康测试卷1+问卷(通用版附答案).docx
- 国家义务教育质量监测四年级心理健康测试卷4+问卷(通用版附答案).docx
- 13(猫)第3课时 课件+公开课一等奖创新教学设计.docx
- 孙权劝学 (同步公开课一等奖创新教学设计).docx
- 第17课 要是你在野外迷了路 公开课一等奖创新教学设计.docx
- 统编版(五四制)11古诗二首 池上 公开课一等奖创新教学设计.docx
文档评论(0)