Spring BeanFactoryAware和AppplicationContextAware有什么区别?

2022-09-04 06:05:53

两者都可以用来获取bean实例,但哪一个更适合用于实现呢?


答案 1

如果需要对 的引用,请使用 。如果需要对 的引用,请使用 。BeanFactoryBeanFactoryAwareApplicationContextApplicationContextAware

请注意,该接口是 的子类,并在基本接口之上提供了其他方法。ApplicationContextBeanFactoryBeanFactory

如果你需要做的就是调用,那么就足够了。getBean()BeanFactory

还要注意的是,Spring 2.5+提供了一种更好的方式,可以让自己与or连接,例如BeanFactoryApplicationContext

private @Autowired ApplicationContext appContext;
private @Autowired BeanFactory beanFactory;

无需接口。XyzAware


答案 2

An 是 的扩展版本,因此提供了额外的功能。ApplicationContextBeanFactory

因此,是否使用或归结为一个问题:您是否明确需要任何附加功能?如果您确实实现了否则,请坚持使用 .ApplicationContextAwareBeanFactoryAwareApplicationContextApplicationContextAwareBeanFactoryAware


推荐