为了账号安全,请及时绑定邮箱和手机立即绑定

模式的秘密---代理模式

难度中级
时长 2小时 0分
学习人数
综合评分9.70
184人评价 查看评价
9.8 内容实用
9.6 简洁易懂
9.7 逻辑清晰
666666666666啊我擦,原来还能这么玩
手写代码实现JDK动态代理的过程:
1. 声明一段源码,这段源码动态生成我们的动态代理;
2. 把源码生成Java文件;
3. 获取系统的Java编译器(JavaCompiler类似与javac);
4. 利用文件管理者StandardJavaFileManager,获取需要编译的文件(Iterable);
5. 调用编译的任务();
6. 进行编译;
7. 编译完成后会生成class文件;
8. 把class文件加载到内存中;
9. 产生一个代理类的对象,并返回该对象;
10. 在测试类中;
11. 测试类中创建一个InvocationHandler(专门做事务处理);
装备以获取,转战源生活老老师的Mybatis去了。。。加油。 18-5-12
心中模糊的答案,得到了验证。比打游戏还开心。
都在看秀ppt了,完全没注意内容是什么哈哈哈
invoke()参数中的Object proxy就是生成的代理对象,你们可以试一下,在method.Invoke的时候传入proxy参数,这个时候运行起来,他会形成一个递归的效果,一直重复调用实现了InvocationHandler接口类中的Invoke()方法

最赞回答 / 假蛙工程师
首先this指代的是当前类的对象。当前类是cglibProxy,所以this指代是cglibProxy类的对象。当前类应该容易理解当前声明的类。想了解更多继续看。官方文档: this 称为隐式参数。这个应用应该见过:public class Student {   private String name;   public void setName(String n) {          name = n;      }}Student stu = new Student();stu.setName("...
把后面的看完 你们就不会为这个争吵了
赞了再看,确实讲得清晰!那些在喷的人,应该多从自身出发找原因,不然这辈子都不会进步

最赞回答 / 嘉禾种嘉禾
问题已解决:1、在生成java文件的时候,java文件路径不正确;我写的是:
String filename = System.getProperty("user.dir")+"/com/design/proxy/$Proxy0.java";
但是我的编译器正式输出路径为:
String filena...
很奇怪呀,老师你说的obj是被代理的对象,而你写的却是代理类?什么鬼?
课程须知
本课程是 Java 开发课程的高级课程,希望各位小伙伴们在学习本课程之前,了解以下内容: 1)初步具备面向对象的设计思维 2)了解多态概念 3)了解反射
老师告诉你能学到什么?
1、代理模式概念机分类 2、代理模式应用场景 3、掌握静态代理、动态代理运用 4、理解JDK动态代理实现原理

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消