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

JDK的动态署理总结

2012-12-27 
JDK的动态代理总结jdk的动态代理是基于接口的,必须实现了某一个或多个任意接口才可以被代理,并且只有这些

JDK的动态代理总结

jdk的动态代理是基于接口的,必须实现了某一个或多个任意接口才可以被代理,并且只有这些接口中的方法会被代理。

我们需要写一个自定义的调用处理器(实现接口java.lang.reflect.InvocationHandler),然后使用类java.lang.reflect.Proxy中的静态方法生成代理类,并把这个代理类当做原先的类使用就可以。

?

1.返回一个与业务代表对象有相同接口的代理对象

public static Object decorate(Object delegate) {return Proxy.newProxyInstance(delegate.getClass().getClassLoader(),delegate.getClass().getInterfaces(), new XAWrapperHandler(delegate));} 

?2.包装业务代表对象所有的业务方法

public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {Object result = null;session = SessionFactory.getSession();try {Transaction tx = session.beginTransaction();//调用原始业务对象的业务方法result = method.invoke(delegate, args);session.flush();tx.commit();} catch (Throwable t) {ta.rollback();}return result;}

?3
JDK的动态署理总结
?

?
JDK的动态署理总结


JDK的动态署理总结

?

动态代理的详细可见这篇:

http://www.cnblogs.com/huxi/archive/2009/12/16/1625899.html

?

热点排行