今天初学了动态代理。呵呵,有点可笑吧。呵呵。java 动态代理, 今天学了jdk 版本部分。 主要以类 的继承与接口方式。 通过接口
InvocationHandler
来实现。据说是aop 是基础核心部分。继续学习。 代码就不拷贝了。直接连接 : http://www.cnblogs.com/jqyp/archive/2010/08/20/1805041.html。
- import java.lang.reflect.InvocationHandler;
- import java.lang.reflect.Method;
- import java.lang.reflect.Proxy;
- /**
- * JDK动态代理代理类
- *
- * @author student
- *
- */
- public class BookFacadeProxy implements InvocationHandler {
- private Object target;
- /**
- * 绑定委托对象并返回一个代理类
- * @param target
- * @return
- */
- public Object bind(Object target) {
- this.target = target;
- //取得代理对象
- return Proxy.newProxyInstance(target.getClass().getClassLoader(),
- target.getClass().getInterfaces(), this); //要绑定接口(这是一个缺陷,cglib弥补了这一缺陷)
- }
- @Override
- /**
- * 调用方法
- */
- public Object invoke(Object proxy, Method method, Object[] args)
- throws Throwable {
- // args 参数传递。 可以多个。 在add方法被执行时。 method 亦即 方法 。add
- Object result=null;
- System.out.println("事物开始");
- //执行方法
- result=method.invoke(target, args);
- System.out.println("事物结束");
- return result;
- }
- }