java获取动态代理的target目标

时间:2025-03-15 15:18:29
private static Object getCglibProxyTargetObject(Object proxy) throws Exception { Field h = ().getDeclaredField("CGLIB$CALLBACK_0"); (true); Object dynamicAdvisedInterceptor = h.get(proxy); Field advised = ().getDeclaredField("advised"); (true); Object target = ((AdvisedSupport)advised.get(dynamicAdvisedInterceptor)).getTargetSource().getTarget(); return target; } private static Object getJdkDynamicProxyTargetObject(Object proxy) throws Exception { Field h = ().getSuperclass().getDeclaredField("h"); (true); AopProxy aopProxy = (AopProxy) h.get(proxy); Field advised = ().getDeclaredField("advised"); (true); Object target = ((AdvisedSupport)advised.get(aopProxy)).getTargetSource().getTarget(); return target; } }