java的动态代理分析实用
【导读预览】此篇优秀范文“java的动态代理分析实用”由阿拉题库网友为您整理分享,以供您参考学习之用,希望此篇资料对您有所帮助,喜欢就复制下载支持吧!
java的动态代理分析篇1
引导语:在使用动态代理类时,我们必须实现invocationhandler接口,以下是百分网网友分享给大家的java动态代理,欢迎阅读了解!
java代码
package test1;
// 被代理类 需实现的 接口
public interface proxied {
void dosomething();
void dosomethingelse(string str);
}
java代码
package test1;
public class concreteproxied implements proxied {
@override
public void dosomething() {
try {
(100);
} catch (interruptedexception e) {
n("error : interruptedexception");
}
n(ss().getsimplename()
+ " >> dosomething .");
}
@override
public void dosomethingelse(string str) {
try {
(150);
} catch (interruptedexception e) {
n("error : interruptedexception");
}
n(ss().getsimplename()
+ " >> dosomethingelse , argument = " + str + ".");
}
}
java代码
package test1;
import tionhandler;
import ;
public class timeinginvocationhandler implements invocationhandler{
//被代理的对象
private object proxied;
public timeinginvocationhandler(object proxied){
d = proxied;
}
// 参数 proxy 表示代理类的对象
// 参数 method 表示被代理类 和 代理类 都实现的接口 的方法对象
// 参数 args 表示方法 method 的参数数组
@override
public object invoke(object proxy, method method, object[] args)
throws throwable {
n(laringclass().getname());
long currenttimemillis = ttimemillis();
object ret = (proxied, args);
n(ss().getsimplename()+" >> wastes time : "
+(ttimemillis() - currenttimemillis)+"ms");
return ret;
}
}
java代码
package test1;
import ;
public class testproxy {
public static void main(string[] args) {
proxied proxied = new concreteproxied();
thing();
thingelse("only a string");
// 生成一个代理实例,这个代理实现了 proxied 接口
// 对这个代理(proxy)的`方法的调用 会 重定向到 timeinginvocationhandler 的 invoke 方法
proxied proxy = (proxied) xyinstance(
.getclassloader(), // 类加载器
new class[] { }, // 代理要实现的接口
new timeinginvocationhandler(proxied) // 调用处理器
);
thing();
thingelse("only a string");
}
}
运行test类,输出如下:
concreteproxied >> dosomething .
concreteproxied >> dosomethingelse , argument = only a string.
d
concreteproxied >> dosomething .
timeinginvocationhandler >> wastes time : 110ms
d
concreteproxied >> dosomethingelse , argument = only a string.
timeinginvocationhandler >> wastes time : 156ms
s("content_relate");java的动态代理分析相关文章:
1.
java使用动态代理来实现aop
2.几分钟理解java中的动态代理
3.java利用反射实现动态代理实现代码
4.关于java动态实现的方法
5.java动态方法调度实例
6.java的动态考试系统的设计
7.java中如何实现显示动态的时间
8.java中静态绑定和动态绑定的区别
9.jni是怎样java调用c动态库
上一篇:实用在新班子调整会上的讲话稿4篇