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

发布于 2024-11-27 17:34:15 字数 118 浏览 0 评论 0原文

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

Is there a way I can preload all beans from the XML file at once and then loop through them without knowing their bean names? I've seen that it is obviously possible to do the preloading but I haven't seen a way to access them without knowing their specific bean names. Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

冷了相思 2024-12-04 17:34:15

您可以使用 getBeanDefinitionNames() 来自 XmlBeanFactory 类。来自 Java 文档:-

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

不考虑该工厂可能参与的任何层次结构,并且
忽略任何已通过其他方式注册的单例 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
}

希望这有帮助!

You can use getBeanDefinitionNames() from the XmlBeanFactory class. From Java Docs:-

Return the names of all beans defined in this factory.

Does not consider any hierarchy this factory may participate in, and
ignores any singleton beans that have been registered by other means
than bean definitions.

Example:

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
}

Hope this helps!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文