动态代理实例——增强Waiter接口
图示
代码
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接口相关推荐
- 【IOC 控制反转】Android 事件依赖注入 ( 事件依赖注入具体的操作细节 | 创建 事件监听器 对应的 动态代理 | 动态代理的数据准备 | 创建调用处理程序 | 创建动态代理实例对象 )
文章目录 前言 一.创建 事件监听器 对应的 动态代理 二.动态代理 数据准备 三.动态代理 调用处理程序 四.动态代理 实例对象创建 前言 Android 依赖注入的核心就是通过反射获取 类 / 方 ...
- 动态代理案例1:运用Proxy动态代理来增强方法
动态代理案例1: /*要求:运用Proxy动态代理来增强方法 题目: 1.定义接口Fruit,其中有addFruit方法 2.定义实现类FruitImpl,实现Fruit接口 ...
- java学习之路 之 反射机制综合练习题、动态代理实例
在上一篇博文中我们已经进行了反射机制的习题练习,这里我们在做一个考察比较全面的练习,如下: 写一个类ReflectUtil类, 类中写一个静态方法Object methodInvoker(String ...
- Java反射机制和动态代理实例
反射机制是Java语言的一个重要特性,允许用户动态获取类的信息和动态调用对象的方法. 通过给定类的名字,通过反射机制就可以获取类的所有信息. JAVA反射机制是在运行状态中,对于任意一个类,都能够知道 ...
- jdk动态代理实例和cglib动态代理实例_CGLib 动态代理 原理解析
JDK 动态代理实现与原理 首先来看一段CGLib代理的测试代码(MethodInterceptor的测试, 其他类型这里不做展开了). Util类的代码在后面给出的码云片段中 public 下面的输 ...
- Spring系列之静态代理、动态代理、cglib代理与Spring AOP的处理
本章内容 代理的概念及理解 如何实现静态代理 如何实现动态代理 静态代理与动态代理有什么区别与优缺点 JDK动态代理如何实现 cglib动态代理如何实现 JDK动态代理与cglib动态代理的区别 Sp ...
- 【过程记录】aop学习·实现动态代理的jdk方法和cglib方法和使用实例
文章目录 介绍 jdk动态代理实例 cglib动态代理实例 介绍 JDK的动态代理只能代理实现了接口的类,而不能实现接口的类就不可以使用JDK动态代理,cglib是针对类来实现代理的,它的原理是针对指 ...
- JDK动态代理为什么必须要基于接口?
前几天的时候,交流群里的小伙伴抛出了一个问题,为什么JDK的动态代理一定要基于接口实现呢? 好的安排,其实要想弄懂这个问题还是需要一些关于代理和反射的底层知识的,我们今天就盘一盘这个问题,走你~ 一个 ...
- 4种实例 advice aop_Java动态代理在Spring的应用:AOP编程与动态代理知识
认真写文章,用心做分享.公众号:Java耕耘者 文章都会在里面更新,整理的资料也会放在里面. 关于代理模式的话题有很多,在开发中经常用到的应该是静态代理模式,能很好的去耦合. 动态代理是代理模式的另外 ...
- 一个简单 JDK 动态代理的实例
动态代理的步骤: 创建一个实现了 InvocationHandler 接口的类,必须重写接口里的 invoke()方法. 创建被代理的类和接口 通过 Proxy 的静态方法 newProxyInsat ...
最新文章
- .NET中的密码学--对称加密
- python生成简单的FTP弱口令扫描
- 454. 4Sum II
- 我这么讲线索二叉树,我三岁大的表弟笑了笑
- OA项目实战(二) 开发准备
- Java RandomAccessFile readChar()方法及示例
- Java7并发编程指南——第五章:Fork Join框架
- Java中的for循环和JavaScript中的for循环差别初探(01)
- java包资源_Java获取jar包以外资源的方法
- Java进阶:GIT
- 计算机基础ppt_「考前秘笈」2020年3月份计算机二级MS-office考试重点
- 基于SSM的医院病历管理系统
- matlab自动打卡程序,MATLAB人脸考勤打卡签到系统[摄像头界面GUI]
- python,如何整体取消tab缩进【反方向缩进】
- nfs挂在内核或U-boot出错TT***ERROR:Cannotumount
- 蘑菇街App的组件化之路·续
- 你说啥什么?注解你还不会?
- 产品管理包括什么和什么_什么是产品管理?
- 从零开始编写一个上位机(串口助手)QT Creator + C++
- My Hundredth Page - 回文子串 - By Nicolas
热门文章
- 记一次Spark中 Container killed by YARN for exceeding memory limits的解决过程
- 提神醒脑 MVP、MVVM 关系精讲
- 裸辞两个月,海投一个月,从 Android 转战 Web 前端的求职之路
- bmc linux 默认密码_系统下重置BMC密码方法
- HTML怎样转换繁体字,excel怎么转繁体字 Excel里怎样繁体字转换成简体字
- c语言手写平衡二叉树非递归实现
- 介绍一下Emily----大一
- FOC控制中电流环带宽
- 你离成为程序员的梦想仅一“证”之遥
- 购买学生服务器、备案域名、搭建博客菜鸟级教程