图示

代码

Waiter接口

/** 服务员接口*/
public interface Waiter {// 服务方法public void serve();}

ManWaiter类

public class ManWaiter implements Waiter {public void serve() {System.out.println("服务中...");}}

Demo

package com.veeja.demo2;import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;import org.junit.Test;public class Demo2 {@Testpublic void fun1() {Waiter manWaiter = new ManWaiter();// 创建三大参数ClassLoader loader = this.getClass().getClassLoader();Class[] interfaces = { Waiter.class };// 参数manWaiter表示目标对象InvocationHandler h = new WaiterInvocationHandler(manWaiter);// 得到代理对象,代理对象就是在目标对象的基础上进行了增强的对象Waiter waiterProxy = (Waiter) Proxy.newProxyInstance(loader,interfaces, h);// 前面增加你好,后面添加再见。waiterProxy.serve();}
}class WaiterInvocationHandler implements InvocationHandler {private Waiter waiter;// 创建目标对象public WaiterInvocationHandler(Waiter waiter) {this.waiter = waiter;}public Object invoke(Object proxy, Method method, Object[] args)throws Throwable {System.out.println("您好!");this.waiter.serve();// 调用目标对象的目标方法System.out.println("再见!");return null;}}

END.

动态代理实例——增强Waiter接口相关推荐

  1. 【IOC 控制反转】Android 事件依赖注入 ( 事件依赖注入具体的操作细节 | 创建 事件监听器 对应的 动态代理 | 动态代理的数据准备 | 创建调用处理程序 | 创建动态代理实例对象 )

    文章目录 前言 一.创建 事件监听器 对应的 动态代理 二.动态代理 数据准备 三.动态代理 调用处理程序 四.动态代理 实例对象创建 前言 Android 依赖注入的核心就是通过反射获取 类 / 方 ...

  2. 动态代理案例1:运用Proxy动态代理来增强方法

    动态代理案例1: /*要求:运用Proxy动态代理来增强方法 题目:     1.定义接口Fruit,其中有addFruit方法     2.定义实现类FruitImpl,实现Fruit接口     ...

  3. java学习之路 之 反射机制综合练习题、动态代理实例

    在上一篇博文中我们已经进行了反射机制的习题练习,这里我们在做一个考察比较全面的练习,如下: 写一个类ReflectUtil类, 类中写一个静态方法Object methodInvoker(String ...

  4. Java反射机制和动态代理实例

    反射机制是Java语言的一个重要特性,允许用户动态获取类的信息和动态调用对象的方法. 通过给定类的名字,通过反射机制就可以获取类的所有信息. JAVA反射机制是在运行状态中,对于任意一个类,都能够知道 ...

  5. jdk动态代理实例和cglib动态代理实例_CGLib 动态代理 原理解析

    JDK 动态代理实现与原理 首先来看一段CGLib代理的测试代码(MethodInterceptor的测试, 其他类型这里不做展开了). Util类的代码在后面给出的码云片段中 public 下面的输 ...

  6. Spring系列之静态代理、动态代理、cglib代理与Spring AOP的处理

    本章内容 代理的概念及理解 如何实现静态代理 如何实现动态代理 静态代理与动态代理有什么区别与优缺点 JDK动态代理如何实现 cglib动态代理如何实现 JDK动态代理与cglib动态代理的区别 Sp ...

  7. 【过程记录】aop学习·实现动态代理的jdk方法和cglib方法和使用实例

    文章目录 介绍 jdk动态代理实例 cglib动态代理实例 介绍 JDK的动态代理只能代理实现了接口的类,而不能实现接口的类就不可以使用JDK动态代理,cglib是针对类来实现代理的,它的原理是针对指 ...

  8. JDK动态代理为什么必须要基于接口?

    前几天的时候,交流群里的小伙伴抛出了一个问题,为什么JDK的动态代理一定要基于接口实现呢? 好的安排,其实要想弄懂这个问题还是需要一些关于代理和反射的底层知识的,我们今天就盘一盘这个问题,走你~ 一个 ...

  9. 4种实例 advice aop_Java动态代理在Spring的应用:AOP编程与动态代理知识

    认真写文章,用心做分享.公众号:Java耕耘者 文章都会在里面更新,整理的资料也会放在里面. 关于代理模式的话题有很多,在开发中经常用到的应该是静态代理模式,能很好的去耦合. 动态代理是代理模式的另外 ...

  10. 一个简单 JDK 动态代理的实例

    动态代理的步骤: 创建一个实现了 InvocationHandler 接口的类,必须重写接口里的 invoke()方法. 创建被代理的类和接口 通过 Proxy 的静态方法 newProxyInsat ...

最新文章

  1. .NET中的密码学--对称加密
  2. python生成简单的FTP弱口令扫描
  3. 454. 4Sum II
  4. 我这么讲线索二叉树,我三岁大的表弟笑了笑
  5. OA项目实战(二) 开发准备
  6. Java RandomAccessFile readChar()方法及示例
  7. Java7并发编程指南——第五章:Fork Join框架
  8. Java中的for循环和JavaScript中的for循环差别初探(01)
  9. java包资源_Java获取jar包以外资源的方法
  10. Java进阶:GIT
  11. 计算机基础ppt_「考前秘笈」2020年3月份计算机二级MS-office考试重点
  12. 基于SSM的医院病历管理系统
  13. matlab自动打卡程序,MATLAB人脸考勤打卡签到系统[摄像头界面GUI]
  14. python,如何整体取消tab缩进【反方向缩进】
  15. nfs挂在内核或U-boot出错TT***ERROR:Cannotumount
  16. 蘑菇街App的组件化之路·续
  17. 你说啥什么?注解你还不会?
  18. 产品管理包括什么和什么_什么是产品管理?
  19. 从零开始编写一个上位机(串口助手)QT Creator + C++
  20. My Hundredth Page - 回文子串 - By Nicolas

热门文章

  1. 记一次Spark中 Container killed by YARN for exceeding memory limits的解决过程
  2. 提神醒脑 MVP、MVVM 关系精讲
  3. 裸辞两个月,海投一个月,从 Android 转战 Web 前端的求职之路
  4. bmc linux 默认密码_系统下重置BMC密码方法
  5. HTML怎样转换繁体字,excel怎么转繁体字 Excel里怎样繁体字转换成简体字
  6. c语言手写平衡二叉树非递归实现
  7. 介绍一下Emily----大一
  8. FOC控制中电流环带宽
  9. 你离成为程序员的梦想仅一“证”之遥
  10. 购买学生服务器、备案域名、搭建博客菜鸟级教程