public class SpringTargetBeanUtils {/*** 获取 目标对象** @param proxy 代理对象* @return* @throws Exception*/public static Object getTarget(Object proxy) throws Exception {if (!AopUtils.isAopProxy(proxy)) {return proxy;//不是代理对象}if (AopUtils.isJdkDynamicProxy(proxy)) {return getJdkDynamicProxyTargetObject(proxy);} else { //cglibreturn getCglibProxyTargetObject(proxy);}}private static Object getCglibProxyTargetObject(Object proxy) throws Exception {Field h = proxy.getClass().getDeclaredField("CGLIB$CALLBACK_0");h.setAccessible(true);Object dynamicAdvisedInterceptor = h.get(proxy);Field advised = dynamicAdvisedInterceptor.getClass().getDeclaredField("advised");advised.setAccessible(true);Object target = ((AdvisedSupport) advised.get(dynamicAdvisedInterceptor)).getTargetSource().getTarget();return target;}private static Object getJdkDynamicProxyTargetObject(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);Object target = ((AdvisedSupport) advised.get(aopProxy)).getTargetSource().getTarget();return target;}

从Spring代理的bean中获取代理对象相关推荐

  1. IIS 7、8启用nginx代理后日志中获取访客真实IP方法

    所需的步骤取决于您的IIS版本.此操作适用iis7之上版本. 1.下载插件F5XForwardedFor.dll:http://download.west263.net/iis7-rewrite%E6 ...

  2. java 普通类request_[Java教程]spring在普通类中获取session和request

    [Java教程]spring在普通类中获取session和request 0 2014-08-12 08:01:13 在使用spring时,经常需要在普通类中获取session,request等对像. ...

  3. spring mvc在Controller中获取ApplicationContext

    spring mvc在Controller中获取ApplicationContext web.xml中进行正常的beans.xml和spring-mvc.xml的配置: 需要在beans.xml中进行 ...

  4. Spring MVC 在JSP中获取 Service或Dao

    Spring MVC 在JSP中获取service 在Controller.Service层都已经配置好了自动注入,但是在JSP中直接使用 IuserInfoShService uishService ...

  5. springMVC中获取request 对象

    1.最简单的方式(注解法) @Autowired private HttpServletRequest request; 2.最麻烦 a. 在web.xml中配置一个监听 <listener&g ...

  6. Spring Boot 异步线程静态获取request对象为空 RequestContextHolder 为空 Java 异步线程获取request为空

    Spring Boot 异步线程静态获取request对象为空 RequestContextHolder 为空 Java 异步线程获取request为空 一.问题描述 在Spring Boot的web ...

  7. java定时器任务中获取request对象 @Scheduled 获取request 对象 quartz中获取request对象

    java定时器任务中获取request对象 @Scheduled 获取request 对象 quartz中获取request对象 一.问题描述 1.在java定时任务中,使用 @Scheduled 注 ...

  8. 通过属性值从对象数组中获取JavaScript对象[重复]

    本文翻译自:Get JavaScript object from array of objects by value of property [duplicate] This question alr ...

  9. js中获取事件对象的方法小结

    代码如下: var evt = window.event || arguments[0]; 下面分三种添加事件的方式讨论,你也许会看到以前没有看到过的获取方式. 1,第一种添加事件的方式,直接在htm ...

  10. android中获取context对象

    在Android中获取context对象 方法一: 先在activity中获取context对象: Context context = MainActivity.this; 哪个类要用到此contex ...

最新文章

  1. Oracle 10g 中通过DBLink访问MySQL数据库
  2. 1054. 求平均值 (20)
  3. Logging with Log4net (二)
  4. 服务器升级内存跟cpu之后性能更差,云服务器cpu重要还是内存重要
  5. org.hibernate.PersistentObjectException: detached entity passed to persist
  6. JavaScript数据结构和算法简述——前言
  7. VC++调试方法和技巧
  8. Tests for normality正态分布检验(python代码实现)
  9. MATLAB——LTI Viewer
  10. 大数据分析师 VS. 大数据工程师
  11. 怎么在手机上照证件照,原来可以很简单
  12. 桌面文档怎么保存到计算机,word怎么保存不到桌面 word文档怎么保存文件到桌面...
  13. IntelliJ IDEA运行JAVA
  14. iTunes音乐导入过程记录(专辑图片、歌手修改,iTunes使用,网易云歌单批量下载)
  15. 【多层交叉transformer:高光谱和多光谱图像融合】
  16. 网页内容繁简体切换(任意页面点击繁体后,其他页面也变成繁体)
  17. Atlassian Crowd安装
  18. 毕业设计之基于Vue的数据可视化平台
  19. python中的返回是什么意思_python代码里出现是啥意思 - SegmentFault 思否
  20. 模拟CMOS集成电路设计入门学习(4)

热门文章

  1. C#:遍历JObject
  2. Swiper:基础学习
  3. python如何保存计算数据_python如何将客户的数据一直保存
  4. Maven打包SpringBoot项目时分离依赖JAR,配置文件时POM文件的参考配置
  5. mysql 8.X主从复制
  6. 视觉SLAM十四讲_3-李群和李代数
  7. C/C++调用python,opencv+python
  8. 如何更高效、更系统地彻底搞懂3D视觉?
  9. (转)使用CUnit进行单元测试和覆盖率统计
  10. git 推送出现 fatal: The remote end hung up unexpectedly 解决方案