或者,以另一种方式-更好的方式,使用自动装配:
@Autowired
private BeanFactory beanFactory;
或实现
BeanFactoryAware
:@Configuration
public class MyConfigurationClass implements BeanFactoryAware {
private BeanFactory beanFactory;
@Override
public void setBeanFactory(final BeanFactory beanFactory) throws BeansException {
this.beanFactory = beanFactory;
}
}
是否有任何区别(除了将设置BeanFactory实例的阶段之外)?
最佳答案
想象一下以下情况:
您在上下文中有两个BeanFactory,其中一个BeanFactory具有@Primary -annotation。
并假设第二个BeanFactory(不具有@Primary -annotation)创建您的类的实例。
在这种情况下,您会有所不同:
第一种将@Autowire加上@Primary注释的BeanFactory,第二种将连接创建实例的BeanFactory。