【发布时间】:2013-08-31 12:12:22
【问题描述】:
我想将 Spring BeanFactory 注入由同一 BeanFactory 创建的 Bean
有什么办法吗?
顺便说一句,我正在开发一个 Web 应用程序。
如果不是,我知道我可以通过拥有RequestContext 来获得BeanFactory,但是我想注入BeanFactory 的bean 不在requestContext 中,但仍在应用程序上下文中。我可以这样做吗?
【问题讨论】:
我想将 Spring BeanFactory 注入由同一 BeanFactory 创建的 Bean
有什么办法吗?
顺便说一句,我正在开发一个 Web 应用程序。
如果不是,我知道我可以通过拥有RequestContext 来获得BeanFactory,但是我想注入BeanFactory 的bean 不在requestContext 中,但仍在应用程序上下文中。我可以这样做吗?
【问题讨论】:
你的 bean 可以实现BeanFactoryAware。通过实现此接口,您的 bean 将通过调用此方法接收BeanFactory:
void setBeanFactory(BeanFactory beanFactory) throws BeansException
顺便说一句,有一个类似的接口 (ApplicationContextAware) 可以在需要时检索ApplicationContext。
【讨论】:
如果启用了注释配置模式,那么这应该可以工作
class Bean
@Autowired
BeanFactory factory;
...
【讨论】: