JDK Dynamic Proxy_JDK动态代理
JDK Dynamic Proxy_JDK动态代理
秋风醉了 发表于3年前
JDK Dynamic Proxy_JDK动态代理
  • 发表于 3年前
  • 阅读 41
  • 收藏 0
  • 点赞 0
  • 评论 0

【腾讯云】买域名送云解析+SSL证书+建站!>>>   

摘要: JDK Dynamic Proxy_JDK动态代理

JDK Dynamic Proxy_JDK动态代理

更详细的在http://my.oschina.net/xinxingegeya/blog/297410

Dynamic Proxy :

In this , proxies are created dynamically through reflection(反射). This functionality is added from JDK 1.3 . Dynamic proxy form the basic building block of Spring AOP.

一个简单的示例:

下面贴出代码来,也没什么好说的

Basicfunc.java

package com.lyx.other;

public interface Basicfunc {
	public void method1();
}

Example1.java

package com.lyx.other;

public class Example1 implements Basicfunc {
	public void method1() {
		System.out.println("executing method 1");
	}
}

MyInvocationHandler.java

package com.lyx.other;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;

public class MyInvocationHandler implements InvocationHandler {

	private Object target;

	public MyInvocationHandler(Object target) {
		this.target = target;
	}

	public Object getTarget() {
		return this.target;
	}

	public void setTarget(Object target) {
		this.target = target;
	}

	public Object invoke(Object proxy, Method method, Object[] params)
			throws Throwable {
		long a = System.currentTimeMillis();
		Object result = method.invoke(this.target, params);
		System.out.println("total time taken  "
				+ (System.currentTimeMillis() - a));
		return result;
	}

}

MainClass.java

package com.lyx.other;

import java.lang.reflect.Proxy;

public class MainClass {
	public static void main(String[] args) {
		Example1 ex = new Example1();
		Basicfunc proxied = (Basicfunc) Proxy.newProxyInstance(
				MainClass.class.getClassLoader(),
				ex.getClass().getInterfaces(), new MyInvocationHandler(ex));
		proxied.method1();
	}
}

======END======


  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 220
博文 583
码字总数 411142
×
秋风醉了
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: