Spring的点点滴滴之动态代理
发布日期:2021-06-29 01:16:36
浏览次数:2
分类:技术文章
本文共 1795 字,大约阅读时间需要 5 分钟。
动态代理的一些代码的举例
public class ProxyInvocationHandler implements InvocationHandler{ private Object target; public void setTarget(Object target) { this.target = target; } public Object getProxy() { return Proxy.newProxyInstance(this.getClass().getClassLoader(), target.getClass().getInterfaces(), this); } @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { // TODO Auto-generated method stub logs(method.getName()); Object result=method.invoke(target, args); return result; } public void seeMouse() { System.out.println("看房子"); } public void jiaoqian() { System.out.println("交钱"); } public void logs(String messageName) { System.out.println("调用"+messageName); }}
public class Client { public static void main(String[] args) { /*userService userService=new userServiceImpl(); ProxyInvocationHandler pih=new ProxyInvocationHandler(); pih.setTarget(userService); userService proxy=(com.yonyou.service.userService) pih.getProxy(); proxy.add();*/ ProxyInvocationHandler pih=new ProxyInvocationHandler(); pih.setTarget(new ArrayList()); List proxy= (List) pih.getProxy(); proxy.add("sd"); }}
这里要实现动态代理首先要实现InvocationHandler这个借口才行。
之后则会里有一个方法`public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { // TODO Auto-generated method stub logs(method.getName()); Object result=method.invoke(target, args);return result;}`这个方法用于实现真是角色的方法。在这个类中还要创建一个proxy代理对象
public Object getProxy() { return Proxy.newProxyInstance(this.getClass().getClassLoader(), target.getClass().getInterfaces(), this); }
这个就是target的代理实例。
当在调用代理实例的方法时,就会自动调用Invoke方法。转载地址:https://blog.csdn.net/ys3198/article/details/53392386 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月18日 17时48分35秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
干货|一次完整的性能测试,测试人员需要做什么?
2019-04-29
全栈性能测试修炼宝典
2019-04-29
jmeter-性能测试7-Stepping Thread Group插件
2019-04-29
jmeter-性能测试9-测试执行
2019-04-29
沟通交流碎碎念
2019-04-29
电信集成笔试题
2019-04-29
jmeter-性能测试8-性能测试基本过程及示例
2019-04-29
1.vue起步
2019-04-29
3.vue条件语句
2019-04-29
4.vue循环语句
2019-04-29
5.Vue计算属性
2019-04-29
6.Vue 监听属性
2019-04-29
10.vue实战--form表单属性绑定
2019-04-29
11.vue实战--form表单字段验证提交验证
2019-04-29
12.vue实战--接口请求,组件使用,页面跳转配置
2019-04-29
打破职能之缺陷预防之路
2019-04-29
mac开启mysql,重置mysql密码,允许远程连接
2019-04-29
安装kibana
2019-04-29
linux安装nodejs
2019-04-29
tomcat部署vue,spring项目
2019-04-29