Java动态代理应用
来源:互联网 发布:百分百综合采集软件 编辑:程序博客网 时间:2024/05/22 08:13
动态代理的常用场景之一是在调用接口的前后,分别加入逻辑,以达到AOP的效果。
package com.meiran.proxy;import org.junit.Test;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;/** * 动态代理的应用 */public class ProxyUsageTest { @Test public void test() { //创建调用类的类加载器 ClassLoader classLoader = ProxyUsageTest.class.getClassLoader(); //创建接口 Class[] waiter = {Waiter.class}; //创建实现类 Waiter waiter1 = new GirlWaiter(); //创建invocationHandler InvocationHandler invocationHandler = new MyInvocationHandler(waiter1); //创建动态代理对象 Waiter proxy = (Waiter) Proxy.newProxyInstance(classLoader, waiter, invocationHandler); proxy.serve(); String result = proxy.testString("250"); System.out.println(result); int i = proxy.testInt(2); System.out.println(i); } class MyInvocationHandler implements InvocationHandler { private Waiter waiter; MyInvocationHandler(Waiter waiter) { this.waiter = waiter; } @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { System.out.println("增强了一次"); Object result = method.invoke(waiter, args); System.out.println("增强了两次"); return result; } }}
调用结果:
增强了一次
女服务员服务
增强了两次
增强了一次
增强了两次
女服务员testString:250
增强了一次
增强了两次
2
说明此种方式调用,可以达到在自己new接口的实现类的基础上,前、后增加处理逻辑,以达到AOP的效果。
0 0
- Java动态代理应用
- Java 动态代理 应用
- Java动态代理的应用
- 动态代理应用场景 Java
- Java动态代理简单应用
- Android Java 动态代理应用
- Java动态代理的应用
- Java动态代理二——CGLIB动态代理应用
- Java动态代理二——CGLIB动态代理应用
- Java动态代理二——CGLIB动态代理应用
- Java动态代理二——CGLIB动态代理应用
- Java动态代理二——CGLIB动态代理应用
- Java动态代理二——CGLIB动态代理应用
- Java动态代理二--CGLIB动态代理应用
- Java动态代理二——CGLIB动态代理应用
- Java动态代理二——CGLIB动态代理应用
- JAVA动态代理的原理及应用
- java反射应用之动态代理
- Dijstra算法代码描述
- git reset revert 回退回滚取消提交返回上一版本
- hdu 5067 Harry And Dig Machine (状态压缩dp)
- 堆与栈在内存里是怎么分配的?
- 变形课
- Java动态代理应用
- java23种设计模式
- LeetCode Unique Binary Search Trees动态规划方法详解
- jpa与hibernate
- (一)网络协议概观
- hdu 5727 Necklace(2016多校第一场1005)
- ServletConfig类、Servlet读取初始化参数的几种方式
- 关于全概率和贝叶斯公式的使用场景说明
- VIM中文乱码原理详解及终极解决方案[经典]