阶段3 2.Spring_07.银行转账案例_8 基于接口的动态代理回顾
2024-10-20 00:35:51
创建 Producer 生产者的类
创建标准。这标准就是接口
创建消费者的类
以前的方式,客户直接找生产厂家
代理商出现以后,怎么去联系代理商
动态代理
第一个参数是ClassLoader 第二个参数是interface是字节码类型,第三个是InvocationHandler是一个接口
代理producer就这么写。代理谁就写谁的getClass().getClassLoader()
代理谁,就是谁的getClass().getInterfaces()
s时而用谁写,所以这里我们new一个InvocationHandler()方法
这里我们只需要干一件事就是:mehtod.invoke();
Objetc第一个参数表示谁的方法。肯定不是被代理对象的方法。
匿名内部类访问外部成员变量时。外部成员要求是最终的,所以这里用final来修饰
这样并没有提供增强的代码
消费者买电脑给了1万块。但是代理商要2千块的提成。生产厂家只能拿到8千块
测试
0.8后面加个f。money是float类型的
消费者拿出1万块购买电脑。经销商分走了2千。 生产厂家得到了8千。
出现问题的原因是这里看不成是一个float类型了。
对于生产厂家来说,。他不管。他只管拿到钱 就可以把电脑给你。这个给就是贵经销商。经销商在卖这个产品的时候。他肯定挣钱。
我们并没有在生产厂家的这个saleProduct方法上做任何的修改。但是对这个方法已经做了增强。这就是之前讲过的 基于接口的动态代理。
但是他也有一个问题。如果我们的类不实现任何接口的时候。他是不能用的
这把接口的实现代码注释掉。
执行就会出现代理异常
最新文章
- How to: 执行Action当收到数据时
- CSS3中的box-shadow
- 理解Java中的接口
- 用python演示一个简单的AST(抽象语法树)
- BZOJ 1801 AHOI2009 中国象棋 递归
- 怎么使用OCR文字识别软件图像压缩功能
- UUID简记
- 高级数据类型-- 字符串(str),切片
- 接上篇:将OneDrive云盘挂载到我的电脑!(1024快乐,明年我应该也可以过这个节日了!)
- 20165336 2017-2018-2 《Java程序设计》第5周学习总结
- LeetCode题解:Flatten Binary Tree to Linked List:别人的递归!
- 【LOJ】#2106. 「JLOI2015」有意义的字符串
- Codeforces Round #371 (Div. 1) D. Animals and Puzzle 二维倍增
- [转]tppabs是什么?如何去除tppabs?
- Android 性能分析工具 TraceView
- Android WebDriver 浏览器自动测试工具介绍
- 利用yacc和lex制作一个小的计算器
- CentOs6.5 安装rabbitmq(转)
- 重新打造的我的Pugo
- 浅谈Facebook的服务器架构(组图)
热门文章
- springboot集成dubbo服务报错No provider available for the service
- 基于Redis实现分布式锁(转载)
- 阅读之spring+Dubbo
- qt5--表格控件QTableWidget
- 无法将 DBNull.Value 强制转换为类型“System.DateTime”。请使用可空类型
- 仅1年GitHub Star数翻倍,Flink 做了什么?
- OpenCV笔记(5)(定位票据并规范化、调库扫描文本)
- 批处理(.bat)文件使用笔记
- 彩色图像--色彩空间 CIELAB、CIELUV
- 分区间统计sql、删除重复数据