“ Spring上下文” = Spring ApplicationContext。
就Web应用程序而言,“根上下文”是指Web应用程序加载和使用的主要上下文。通常,你将使用ContextLoaderListener启动根上下文。
根上下文实际上不是上下文的“一种”。它只是上下文所扮演的角色。Web应用程序中有一个根上下文。其他上下文不是根上下文。它们通常是根上下文的子级。
这里的命名空间是指Spring的DispatcherServlet实例的范围。就是说,如果你在web.xml中将servlet命名为“ test”,那么按照惯例,Spring将查找名为“ test-servlet.xml”的文件用作该调度程序的上下文。顺便说一句,为分派器创建的每个此类上下文都将成为根上下文的子级。
编辑:要回答你的新问题:
- 跟随我回答的第一行中的链接以了解ApplicationContext。如果你有未在此处回答的问题,建议你发布一个新的SO问题。
- 根上下文是可选的。如果你没有定义ContextLoaderListener,那么你就没有根上下文。当你使用DispatcherServlet时,它将启动自己的ApplicationContext,并从那里获取所需的bean。
- 我不知道一个人顶着脑袋。我想如果你的应用程序中某些URL资源之间需要完全不同的配置,那可能会促使你这样做。
- 是。为了用适当的术语表述,根上下文是为DispatcherServlet启动的任何上下文的父上下文。可以通过子上下文访问父上下文中的Bean,但事实并非如此。



