java动态代理demo
首先一个接口
public interface MyInterface {
void method1(String arg);
}
再写一个接口实现类
public class MyInterfaceImpl implements MyInterface {
/*
* (non-Javadoc)
* @see reflectStudy.MyInterface#method1()
*/
@Override
public void method1(String arg) {
System.out.println("MyInterfaceImpl:arg=" + arg);
}
}
然后就是代理类,
动态代理: 如果想要完成动态代理,首先需要定义一个InvocationHandler接口的子类,已完成代理的具体操作。
public class MyInvocationHandler implements InvocationHandler {
private Object obj = null;
public Object getNewInstance(Object obj) {
this.obj = obj;
return Proxy.newProxyInstance(obj.getClass().getClassLoader(), obj.getClass().getInterfaces(), this);
}
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
return method.invoke(this.obj, args);
}
}
client测试
/**
*
*
* @throws Throwable
* @throws SecurityException
*/
private static void invocationHandler2() throws SecurityException, Throwable {
MyInvocationHandler demo = new MyInvocationHandler();
MyInterface impl = (MyInterface) demo.getNewInstance(new MyInterfaceImpl());
String arg = "hello";
Object[] objs = new Object[] { arg };
demo.invoke(impl, MyInterface.class.getMethods()[0], objs);
impl.method1("helllo");
}
run result:
MyInterfaceImpl:arg=hello
MyInterfaceImpl:arg=helllo
- java原生动态代理实现demo
- java 动态代理 结合demo直通车
- Core Java:使用java.lang.reflect实现JDK动态代理的小DEMO
- java代理Demo——JDK动态代理
- java动态代理demo
- java反射中的动态代理
- Java核心技术点之动态代理
- Java动态代理与CGLIB
- java动态代理(JDK和cglib)
- Java设计模式Proxy之动态代理
- java的动态代理机制详解
- Java的静态代理和动态代理(网页排版不好,附上pdf附件)
- [Java] 动态代理 03 --(解决接口也当参数传)
- Java 理论与实践: 用动态代理进行修饰
- 黑马程序员_ java高新之动态代理
- Java基础---Java---基础加强---类加载器、委托机制、AOP、 动态代理技术、让动态生成的类成为目标类的代理、实现Spring可配置的AOP框架
- Java JDK 动态代理例子
- JAVA动态代理实现aop的简单例子
- Java中的动态代理
- 【Java进阶-Java动态代理与AOP】03 创建动态类的实例对象及调用其方法