BeanFactoryAware VS. @Autowired - 自动装配BeanFactory是个坏主意吗?

时间:2016-09-12 10:41:28

标签: java spring autowired

或者,以不同的方式 - 使用自动装配更好:

@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实例的阶段)?

1 个答案:

答案 0 :(得分:1)

想象一下以下情况: 您在上下文中有两个BeanFactorys,其中一个BeanFactorys具有@Primary - 注释。

假设第二个BeanFactory(没有@Primary - 注释)创建了类的实例。

在这种情况下,你将有所不同:

第一种是@Autowire @Primary - 带注释的BeanFactory,第二种将连接创建实例的BeanFactory。