首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 其他相关 >

java动态署理(Proxy、Invocation)

2012-08-26 
java动态代理(Proxy、Invocation)动态代理的作用(个人理解):可以实现类似拦截器的功能,比如执行某个方法前

java动态代理(Proxy、Invocation)

动态代理的作用(个人理解):

可以实现类似拦截器的功能,比如执行某个方法前后,需要执行一些其它操作(如开启关闭事务,记录日志、权限校验等)。

不足(个人理解):

目前仅能创建指定接口的动态代理,如果需要为某个类(该类未实现任何接口)创建动态代理,则无能为力了(实际上通过另外一个开源框架cglib也是可以实现的,只是java本身未提供该功能)。

示例:

接口IHelloWorld

public class Test {public static void main(String[] args) {try {//须用接口来接收IHelloWorld hello = (IHelloWorld)ProxyFactory.getProxyObj(HelloWorld.class.getName());System.out.println("返回结果:"+hello.sayHello("huangqiqing"));} catch (Exception e) {e.printStackTrace();}}}

?

输出结果:

执行public abstract java.lang.String IHelloWorld.sayHello(java.lang.String)之前
执行sayHello()
执行public abstract java.lang.String IHelloWorld.sayHello(java.lang.String)之后
返回结果:hello,huangqiqing

?

热点排行