阶段3 2.Spring_07.银行转账案例_8 基于接口的动态代理回顾
创建 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方法上做任何的修改。但是对这个方法已经做了增强。这就是之前讲过的 基于接口的动态代理。
但是他也有一个问题。如果我们的类不实现任何接口的时候。他是不能用的
这把接口的实现代码注释掉。
执行就会出现代理异常
转载于:https://www.cnblogs.com/wangjunwei/p/11353549.html
阶段3 2.Spring_07.银行转账案例_8 基于接口的动态代理回顾相关推荐
- Spring框架----基于接口的动态代理
由我们前面对代理的分析 对代理的分析 有生产商,销售人员和消费者这3个角色,销售人员是中间代理商.代理销售和售后的工作. 而在刚开始的时候,我们并没有销售人员.根据这样的思路,我们写出以下代码 接口I ...
- 第六篇 - 手写基于接口实现动态代理
Github源码下载地址:https://github.com/chenxingxing6/sourcecode/tree/master/code-proxy 一.前言 我们知道常见的动态代理有两种实 ...
- java基于接口的动态代理
1.目标代理测试类 package com.proxy;public class StudentProxyTest {public static void main(String[] args) {/ ...
- Spring框架----基于子类的动态代理
上节,我们提到了基于接口的动态代理. 基于接口的动态代理 来完成通过中间代理商,消费者从生产商那里购买产品的功能. 这种动态代理要求第三方jar包的支持. cglib依赖,版本是2.1_3 基于子类的 ...
- 基于子类的动态代理:
基于子类的动态代理: 提供者:第三方的CGLib,如果报asmxxxx异常,需要导入asm.jar. <dependency> <groupId>cglib</group ...
- 基于子类的动态代理(使用CBl工具)
基于子类的动态代理 要求: 1.被代理类不能是最终类,不能被finaly修饰 提供者:第三方 CGlib ...
- Filter过滤器和动态代理处理机制和案例(Filter过滤器和动态代理结合)
关注公众号:"奇叔码技术" 回复:"java面试题大全"或者"java面试题" 即可免费领取资料 Filter过滤器和动态代理处理机制和案例 ...
- 小案例:基于python的动态时钟,带十二时辰和经络养身
一.前言 1.仅用来研究学习使用. 2.除正常显示时钟外,还可以实时显示当前对应的时辰,和经络养身提示. 3.适合辅助上班族来养生 二.效果如下: 三.源码如下: ''' 动态时钟附带十二时辰显示 ' ...
- aop简介-基于jdk的动态代理
①目标类接口 public interface TargetInterface {public void method(); } ②目标类 public class Target implements ...
- Spring-学习笔记07【银行转账案例】
Java后端 学习路线 笔记汇总表[黑马程序员] Spring-学习笔记01[Spring框架简介][day01] Spring-学习笔记02[程序间耦合] Spring-学习笔记03[Spring的 ...
最新文章
- 题目 1477:【蓝桥杯】【入门题】字符串输入输出函数
- Tomcat三种模式及配置APR模式
- vue父子组件传值,sync语法糖
- linux下安装QQ(转载)
- bzoj1601 [Usaco2008 Oct]灌水
- 单点登录(SSO)—简介 1
- .NET平台下Web树形结构程序设计
- vue报错 TypeError: merge is not a function
- sparkSession常见参数设置
- Socket(套接字)简介
- MySQL5.5安装版安装教程
- idea生成类中序列化id
- 想创业?从学会需求谈判开始
- Spring框架学习总结(上)
- kazoo在多进程下使用全局连接死锁问题
- prometheus如何评估告警策略以及如何推送告警消息到alertmanager?
- 基于Java Swing编写的简易运费计算工具
- “对不起,我是用AI做的警察”
- 西部数据绿盘、蓝盘、黑盘、红盘和紫盘的区别
- 4大Excel文本合并技巧,这几个公式轻松帮你搞定