我最近开始学习Spring Framework,我对于如何使用ApplicationContext有点不清楚 - 无论是在独立应用程序还是Web应用程序中。我知道ApplicationContext曾经用spring配置xml实例化,是“spring container”并且是一个单例。
可是:
答案 0 :(得分:3)
您需要至少从外部调用一次上下文,这是无法避免的。使用webapps,这部分对你来说是隐藏的,感觉就像所有东西都在使用DI,即使Spring的servlet粘合代码在幕后做了一些不愉快。
可能,是的;应该,不。您自己致电getBean
的理由很少。
最明显的情况是当你有一个需要访问上下文的servlet过滤器时。过滤器不是由Spring管理的,所以Spring不能将它们连接到它们中。
这有点太模糊了。阅读参考文档:)
答案 1 :(得分:1)
我通常建议每个应用程序只使用一次的ApplicationContext.getBean(),并依赖Spring配置来完成剩下的工作。
该异常适用于单元测试,我想在其中加载bean的特定子集(因此我将显式加载通常从bean层次结构顶部加载的bean)。