从Spring代理的bean中获取代理对象
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中获取代理对象相关推荐
- IIS 7、8启用nginx代理后日志中获取访客真实IP方法
所需的步骤取决于您的IIS版本.此操作适用iis7之上版本. 1.下载插件F5XForwardedFor.dll:http://download.west263.net/iis7-rewrite%E6 ...
- java 普通类request_[Java教程]spring在普通类中获取session和request
[Java教程]spring在普通类中获取session和request 0 2014-08-12 08:01:13 在使用spring时,经常需要在普通类中获取session,request等对像. ...
- spring mvc在Controller中获取ApplicationContext
spring mvc在Controller中获取ApplicationContext web.xml中进行正常的beans.xml和spring-mvc.xml的配置: 需要在beans.xml中进行 ...
- Spring MVC 在JSP中获取 Service或Dao
Spring MVC 在JSP中获取service 在Controller.Service层都已经配置好了自动注入,但是在JSP中直接使用 IuserInfoShService uishService ...
- springMVC中获取request 对象
1.最简单的方式(注解法) @Autowired private HttpServletRequest request; 2.最麻烦 a. 在web.xml中配置一个监听 <listener&g ...
- Spring Boot 异步线程静态获取request对象为空 RequestContextHolder 为空 Java 异步线程获取request为空
Spring Boot 异步线程静态获取request对象为空 RequestContextHolder 为空 Java 异步线程获取request为空 一.问题描述 在Spring Boot的web ...
- java定时器任务中获取request对象 @Scheduled 获取request 对象 quartz中获取request对象
java定时器任务中获取request对象 @Scheduled 获取request 对象 quartz中获取request对象 一.问题描述 1.在java定时任务中,使用 @Scheduled 注 ...
- 通过属性值从对象数组中获取JavaScript对象[重复]
本文翻译自:Get JavaScript object from array of objects by value of property [duplicate] This question alr ...
- js中获取事件对象的方法小结
代码如下: var evt = window.event || arguments[0]; 下面分三种添加事件的方式讨论,你也许会看到以前没有看到过的获取方式. 1,第一种添加事件的方式,直接在htm ...
- android中获取context对象
在Android中获取context对象 方法一: 先在activity中获取context对象: Context context = MainActivity.this; 哪个类要用到此contex ...
最新文章
- Oracle 10g 中通过DBLink访问MySQL数据库
- 1054. 求平均值 (20)
- Logging with Log4net (二)
- 服务器升级内存跟cpu之后性能更差,云服务器cpu重要还是内存重要
- org.hibernate.PersistentObjectException: detached entity passed to persist
- JavaScript数据结构和算法简述——前言
- VC++调试方法和技巧
- Tests for normality正态分布检验(python代码实现)
- MATLAB——LTI Viewer
- 大数据分析师 VS. 大数据工程师
- 怎么在手机上照证件照,原来可以很简单
- 桌面文档怎么保存到计算机,word怎么保存不到桌面 word文档怎么保存文件到桌面...
- IntelliJ IDEA运行JAVA
- iTunes音乐导入过程记录(专辑图片、歌手修改,iTunes使用,网易云歌单批量下载)
- 【多层交叉transformer:高光谱和多光谱图像融合】
- 网页内容繁简体切换(任意页面点击繁体后,其他页面也变成繁体)
- Atlassian Crowd安装
- 毕业设计之基于Vue的数据可视化平台
- python中的返回是什么意思_python代码里出现是啥意思 - SegmentFault 思否
- 模拟CMOS集成电路设计入门学习(4)
热门文章
- C#:遍历JObject
- Swiper:基础学习
- python如何保存计算数据_python如何将客户的数据一直保存
- Maven打包SpringBoot项目时分离依赖JAR,配置文件时POM文件的参考配置
- mysql 8.X主从复制
- 视觉SLAM十四讲_3-李群和李代数
- C/C++调用python,opencv+python
- 如何更高效、更系统地彻底搞懂3D视觉?
- (转)使用CUnit进行单元测试和覆盖率统计
- git 推送出现 fatal: The remote end hung up unexpectedly 解决方案