易网时代-编程资源站
Welcome
微信登录
编程资源
图片资源库
蚂蚁家优选
PDF转换器
软件资源
软件开发
、
小程序制作
、
系统集成与运维
、
空间租用
、
硬件开发
、
视频监控
、
技术咨询与支持
——联系电话:0311-88999002/88999003
首页
/
操作系统
/
Linux
/
Java动态代理简单实现
Java动态代理简单实现:
package
com.dynamic.proxy;
public
class
ProxyDemo {
public
static
void
main(String[] args)
throws
SecurityException, NoSuchMethodException {
LogHandler logHandler =
new
LogHandler();
IHello hello = (IHello)logHandler.bind(
new
HelloImp());
hello.toHello(
"cross"
);
hello.toHello1(
"cross"
);
}
}
package
com.dynamic.proxy;
import
java.lang.reflect.InvocationHandler;
import
java.lang.reflect.Method;
import
java.lang.reflect.Proxy;
public
class
LogHandler
implements
InvocationHandler {
private
Object deledate;
public
Object bind(Object deledate){
this
.deledate = deledate;
Object proxy = Proxy.newProxyInstance(deledate.getClass().getClassLoader(), deledate.getClass().getInterfaces(),
this
);
return
proxy;
}
public
Object invoke(Object proxy, Method method, Object[] obj)
throws
Throwable {
doBefore();
Object result = method.invoke(deledate, obj);
doAfter();
return
result;
}
private
void
doBefore() {
System.out.println(
"before...."
);
}
private
void
doAfter() {
System.out.println(
"after...."
);
}
}
package
com.dynamic.proxy;
public
interface
IHello {
public
void
toHello(String name);
public
void
toHello1(String name);
}
package
com.dynamic.proxy;
public
class
HelloImp
implements
IHello {
public
void
toHello(String name) {
System.out.println(
"method hello:"
+ name);
}
public
void
toHello1(String name) {
System.out.println(
"method hello1:"
+ name);
}
}
收藏该网址
版权所有©石家庄振强科技有限公司2024
冀ICP备08103738号-5
网站地图