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

spring署理类中获取实现类的方法

2012-12-18 
spring代理类中获取实现类的方法今天写测试,需要对某个spring注入的类中set MOCK对象,需要获得代理的对象。

spring代理类中获取实现类的方法

今天写测试,需要对某个spring注入的类中set MOCK对象,需要获得代理的对象。

?

?

?

?

public static Object getTargetObject(Object proxy) throws Exception {if(!AopUtils.isAopProxy(proxy)) { //判断是否是代理类return proxy;}return getTargetObject(getProxyTargetObject(proxy));}private static Object getProxyTargetObject(Object proxy) throws Exception {Field h = proxy.getClass().getSuperclass().getDeclaredField("h");        h.setAccessible(true);        AopProxy aopProxy = (AopProxy) h.get(proxy);        Field advised = aopProxy.getClass().getDeclaredField("advised");        advised.setAccessible(true);        return  ((AdvisedSupport)advised.get(aopProxy)).getTargetSource().getTarget();}

热点排行