jdk动态代理应用
来源:互联网 发布:淘宝开店怎么描述小铺 编辑:程序博客网 时间:2024/06/03 14:36
jdk动态代理是动态代理技术的一种,和CGLIB动态代理不同的是,它要求目标对象和代理对象实现同一个接口。由于能力有限,今天就写一个小例子,其原理以后搞明白再写吧。
首先创建目标接口
public interface UserManager { void addUser();}创建接口的实现类
public class UserManagerImpl implements UserManager { public void addUser() { System.out.println("添加用户..."); }}jdk动态代理的关键是Proxy和InvocationHandler,再创建一个InvocationHandler的实现类
public class TransactionHandler implements InvocationHandler { private Object target; public TransactionHandler(Object target) { super(); this.target = target; } public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { System.out.println("开始事务"); Object result = method.invoke(target, args); System.out.println("结束事务"); return result; } public Object getProxy() { return Proxy.newProxyInstance(Thread.currentThread().getContextClassLoader(), target.getClass().getInterfaces(), this); }}其中target是目标对象,invoke是当调用目标对象的目标方法时由代理对象调用的,用来增强目标方法,getProxy方法获得一个代理对象。
public class Client { public static void main(String[] args) { UserManager userManager = new UserManagerImpl(); TransactionHandler handler = new TransactionHandler(userManager); UserManager manager = (UserManager) handler.getProxy(); manager.addUser(); }}结果
开始事务
添加用户...
结束事务
由结果可以看出,应用Jdk动态代理在没有改变原代码的条件下增强了目标方法
阅读全文
0 0
- jdk动态代理应用
- jdk 动态代理简单应用
- 学习动态代理stepbystep(5)[应用jdk中的动态代理]
- Aop应用原理 JDK动态代理、代理模式与反射
- 代理模式,JDK动态代理
- Java动态代理--jdk代理
- 代理模式-JDK动态代理
- JDK中的动态代理
- JDK动态代理
- JDK动态代理
- JDK动态代理
- jdk动态代理(暂)
- JDK动态代理
- JDK动态代理实例
- jdk 动态代理
- JDK动态代理
- JDK动态代理说明
- jdk动态代理
- 调用系统相机拍照 并保存进SD卡
- 详解KMP算法
- DNS服务原理解析
- PKU1821 Fence
- Gemini Blueprint参考文档 第11章 纲要服务
- jdk动态代理应用
- QNX驱动开发——中断处理
- mysql的常用命令
- 网络请求图片ImageLoader
- docker + sudo
- 范数
- 卡特兰数
- 对于一些基本概念的解释
- 学习hibernate中的一些问题及知识(1)