Java 动态代理Proxy和Invacationhandler的使用
2016-05-10 11:22
477 查看
所有动态代理其实是利用反射机制的基础,反射调用代理对象delegate的方法时,我们可以在调用前和调用后实现自己的作用代码,达到动态给原有方法增加功能的目的,好吧闲话少说直接上代码:
private DynamicMethod mDynamicMethod; private Object mDelegate; public QxInvocationHandler(Object delegate) { this.mDelegate = delegate; } public QxInvocationHandler(Object delegate, DynamicMethod dynamicMethod) { this.mDelegate = delegate; this.mDynamicMethod = dynamicMethod; } public Object bind() { return Proxy.newProxyInstance(Thread.currentThread().getContextClassLoader(), mDelegate.getClass().getInterfaces(), this); } @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { Object obj = null; if (mDynamicMethod != null) { mDynamicMethod.beforeInvokeMothed(); } obj = method.invoke(mDelegate, args); if (mDynamicMethod != null) { mDynamicMethod.afterInvokeMehod(); } return obj; } public void setmDynamicMethod(DynamicMethod mDynamicMethod) { this.mDynamicMethod = mDynamicMethod; } public interface DynamicMethod { void beforeInvokeMothed(); void afterInvokeMehod(); }
相关文章推荐
- java实现图片上加文字水印(SpringMVC + Jsp)
- PowerDesigner 逆向工程 Could not Initialize JavaVM!
- Java基础(2)变量,循环,数组,方法。。。。。。
- java 集合框架-HashSet
- Java Annotation
- 搭建springMVC报错
- java 区别“==”和equals()方法
- java 集合框架-ArrayList存储不重复的自定义对象
- Spring源码解析——从XmlBeanFactory的构造函数开始看LoadBeanDefinitions
- Spring源码解析——从XmlBeanFactory的构造函数开始看LoadBeanDefinitions
- Java反射机制的使用
- IntelliJ IDEA 普通java工程如何转为maven工程
- Java7中的ForkJoin并发框架初探(下)—— ForkJoin的应用
- java 使用map返回多个对象组装
- java web问题收集
- JAVA动态绑定机制
- Java中的方法重载和重写(覆盖)
- java 集合框架三-LinkedList
- Java7中的ForkJoin并发框架初探(上)——需求背景和设计原理
- java学习线路