【发布时间】:2012-11-26 08:56:23
【问题描述】:
我需要阅读 com.Foo 类的所有 bean。
我以前是怎么做的:
BeanFactory factory = new XmlBeanFactory(new ClassPathResource(file));
Map elements = BeanFactoryUtils.beansOfTypeIncludingAncestors((ListableBeanFactory) factory, com.Foo.class);
事实证明,XmlBeanFactory 现在已被弃用。如何在 Spring 3.1 中读取给定类的所有 bean?
编辑:new 工厂必须能够从任何文件、类路径或文件系统加载 bean 定义 XML。到目前为止,我使用的是 Spring
org.springframework.core.io.Resource 接口,它工作得很好(它有很多实现,适用于任何类型的文件)
【问题讨论】:
-
ListableBeanFactory 没有被弃用,它由每个应用程序上下文类实现。
beansOfTypeIncludingAncestors没有错 -
但
XmlBeanFactory已被弃用。而且我找不到一个将Resourc作为 ctor 参数的类(它并不总是来自类路径) -
尝试改用 ClassPathXmlApplicationContext。资源仅由应用程序上下文支持,而不是简单的 bean 工厂 imho
-
就像我说的 - 我从文件中读取 bean 定义,不一定来自类路径