Java BeanFactoryAware??它如何知道使用哪个beanFactory?

Java BeanFactoryAware??它如何知道使用哪个beanFactory?,java,spring,Java,Spring,我一直在寻找更好的方法来做这件事。在Spring中,我的很多类都需要从XmlBeanFactory加载bean(对象)。所以我把下面这句话放在我的大部分课程里 private static XmlBeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("config.xml")) 然后有人发帖说我应该让我的类实现BeanFactoryAware,这将为它们提供bean工厂的实例,这样您就可以直接调用BeanFacto

我一直在寻找更好的方法来做这件事。在Spring中,我的很多类都需要从XmlBeanFactory加载bean(对象)。所以我把下面这句话放在我的大部分课程里

private static XmlBeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("config.xml"))
然后有人发帖说我应该让我的类实现BeanFactoryAware,这将为它们提供bean工厂的实例,这样您就可以直接调用BeanFactory.getBean(..)方法之一

我在类中实现了BeanFactoryAware,但现在我得到了

java.lang.NullPointerException

当我试图从我的对象访问工厂时。我错过了什么吗??Spring如何知道要使用的beanFactory?

对象实现
BeanFactoryAware
应该是一个bean本身,以便注入bean工厂。这是作为bean处理的一部分完成的


注入的Bean工厂将是一个实例化Bean实现
BeanFactoryAware

的工厂,这完全是错误的,而且perty与Spring的整个要点相矛盾。如果在需要的每个对象中创建一个新的bean工厂,那么还将创建spring配置(和注释)中定义的所有bean的新实例


Spring的整个要点是创建一个bean工厂,并让它通过bean声明和连接创建整个对象图。我建议你看一些Spring教程,或者如果你身边有其他人对Spring更有经验,请他们给你介绍一下。

你是说使用BeanFactoryAware不好吗?这取决于你想完成什么。如果您只想在一个bean中使用bean工厂来获取另一个bean,那么应该使用@Autowired(或者显式注入,如果您使用的是xml配置)。如果你真的需要豆子工厂,BeanFactoryAware是一个不错的选择。