创建 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 基于接口的动态代理回顾相关推荐

  1. Spring框架----基于接口的动态代理

    由我们前面对代理的分析 对代理的分析 有生产商,销售人员和消费者这3个角色,销售人员是中间代理商.代理销售和售后的工作. 而在刚开始的时候,我们并没有销售人员.根据这样的思路,我们写出以下代码 接口I ...

  2. 第六篇 - 手写基于接口实现动态代理

    Github源码下载地址:https://github.com/chenxingxing6/sourcecode/tree/master/code-proxy 一.前言 我们知道常见的动态代理有两种实 ...

  3. java基于接口的动态代理

    1.目标代理测试类 package com.proxy;public class StudentProxyTest {public static void main(String[] args) {/ ...

  4. Spring框架----基于子类的动态代理

    上节,我们提到了基于接口的动态代理. 基于接口的动态代理 来完成通过中间代理商,消费者从生产商那里购买产品的功能. 这种动态代理要求第三方jar包的支持. cglib依赖,版本是2.1_3 基于子类的 ...

  5. 基于子类的动态代理:

    基于子类的动态代理: 提供者:第三方的CGLib,如果报asmxxxx异常,需要导入asm.jar. <dependency> <groupId>cglib</group ...

  6. 基于子类的动态代理(使用CBl工具)

    基于子类的动态代理 要求:                  1.被代理类不能是最终类,不能被finaly修饰                     提供者:第三方 CGlib           ...

  7. Filter过滤器和动态代理处理机制和案例(Filter过滤器和动态代理结合)

    关注公众号:"奇叔码技术" 回复:"java面试题大全"或者"java面试题" 即可免费领取资料 Filter过滤器和动态代理处理机制和案例 ...

  8. 小案例:基于python的动态时钟,带十二时辰和经络养身

    一.前言 1.仅用来研究学习使用. 2.除正常显示时钟外,还可以实时显示当前对应的时辰,和经络养身提示. 3.适合辅助上班族来养生 二.效果如下: 三.源码如下: ''' 动态时钟附带十二时辰显示 ' ...

  9. aop简介-基于jdk的动态代理

    ①目标类接口 public interface TargetInterface {public void method(); } ②目标类 public class Target implements ...

  10. Spring-学习笔记07【银行转账案例】

    Java后端 学习路线 笔记汇总表[黑马程序员] Spring-学习笔记01[Spring框架简介][day01] Spring-学习笔记02[程序间耦合] Spring-学习笔记03[Spring的 ...

最新文章

  1. 题目 1477:【蓝桥杯】【入门题】字符串输入输出函数
  2. Tomcat三种模式及配置APR模式
  3. vue父子组件传值,sync语法糖
  4. linux下安装QQ(转载)
  5. bzoj1601 [Usaco2008 Oct]灌水
  6. 单点登录(SSO)—简介 1
  7. .NET平台下Web树形结构程序设计
  8. vue报错 TypeError: merge is not a function
  9. sparkSession常见参数设置
  10. Socket(套接字)简介
  11. MySQL5.5安装版安装教程
  12. idea生成类中序列化id
  13. 想创业?从学会需求谈判开始
  14. Spring框架学习总结(上)
  15. kazoo在多进程下使用全局连接死锁问题
  16. prometheus如何评估告警策略以及如何推送告警消息到alertmanager?
  17. 基于Java Swing编写的简易运费计算工具
  18. “对不起,我是用AI做的警察”
  19. 西部数据绿盘、蓝盘、黑盘、红盘和紫盘的区别
  20. 4大Excel文本合并技巧,这几个公式轻松帮你搞定

热门文章

  1. 偏序关系与全序关系的区别
  2. 北大计算机学硕几年,我的OI经历 --张正超(深学教育资深教练、北大计算机系研究生)...
  3. php读取excel公式取值,通用PHPExcel导出函数代码
  4. IDEA中使用SQLite数据库
  5. JUC与JVM并发编程学习笔记01
  6. struts教程笔记1
  7. JSP教程第6讲笔记
  8. keras 多分类一些函数参数设置
  9. 深度学习论文和开源代码
  10. OpenCV笔记:pyrDown()函数和pryUp()函数的使用