如何获得一个真正的 bean class 而不是 CGlib 代理?
How to get a bean real class instead CGlib proxy?
我有一个配置bean:
@Configuration
@ConfigurationProperties(prefix = "core.organizations")
public class PermissionConfig {
...
}
我想得到它的真实class。如果我通过方法 bean.getClass()
获取它,我将改为获取 CGlib 代理。
我试过使用 AopUtils.getTargetClass(bean)
、AopProxyUtils.ultimateTargetClass(bean)
,但它 returns 是同一个代理
AopUtils.getTargetClass(bean)
不适用于注释为 @Configuration
的 bean。我用 ClassUtils.getUserClass(bean)
作为我的 bean。有效
您可以使用 ClassUtils.getUserClass(对象 bean)获取 CGLIB 生成的子 class 的父 class。
我有一个配置bean:
@Configuration
@ConfigurationProperties(prefix = "core.organizations")
public class PermissionConfig {
...
}
我想得到它的真实class。如果我通过方法 bean.getClass()
获取它,我将改为获取 CGlib 代理。
我试过使用 AopUtils.getTargetClass(bean)
、AopProxyUtils.ultimateTargetClass(bean)
,但它 returns 是同一个代理
AopUtils.getTargetClass(bean)
不适用于注释为 @Configuration
的 bean。我用 ClassUtils.getUserClass(bean)
作为我的 bean。有效
您可以使用 ClassUtils.getUserClass(对象 bean)获取 CGLIB 生成的子 class 的父 class。