Spring框架 - 在不知道名称的情况下预加载bean并循环遍历它们

时间:2011-08-02 21:46:00

标签: java spring dependency-injection

有没有办法可以立即从XML文件中预加载所有bean,然后在不知道bean名称的情况下遍历它们?我已经看到显然可以进行预加载但我还没有看到一种方法来访问它们而不知道它们的特定bean名称。谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用getBeanDefinitionNames()课程中的XmlBeanFactory。来自Java Docs: -

  

返回此工厂中定义的所有bean的名称。

     

不考虑该工厂可能参与的任何层级,以及   忽略已通过其他方式注册的任何单例bean   比豆定义。

示例:

ClassPathResource context = new ClassPathResource("applicationContext.xml");
XmlBeanFactory factory = new XmlBeanFactory(context);
String[] beans = factory.getBeanDefinitionNames();
//loop through beans array to get bean names
for (int i=0; i<beans.length; i++) { 
   //do your stuff
}

希望这有帮助!