或者,以另一种方式-更好的方式,使用自动装配:

@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。

08-04 03:13