1

我有一个未知范围的 bean 的名称。我试图以可靠的方式(处理代理等)确定它的静态类型(用 注释的类@Component,或工厂方法的返回类型)。@Bean

  • BeanFactory.getType(beanName)给我一个代理类。
  • BeanFactory.getBeanDefinition(beanName).getResolvableType()在很多情况下给了我一个EmptyType.

用于确定 bean 类型的所有实用程序方法AopUtils.getTargetClass()AopProxyUtils.ultimateTargetClass()需要一个实际实例,对于非单例,我无法安全地获得它。

如果 bean 是由工厂方法创建的,我可以通过找到该方法beanDefinition.getSource()并从那里获取其返回类型。@Component但是对于带注释的类来说似乎没有任何可能。我可以获得类,但不能获得类本身(并且按名称加载它是我宁愿避免的一罐蠕虫)。

有什么我可以在这里做的吗?

4

0 回答 0