为什么要使用Spring的ApplicationContext层次结构?
我想了解Spring的ApplicationContext层次结构。
我学到了以下
- 一个ApplicationContext不能有一个以上的父ApplicationContext。
- 当一个给定的ApplicationContext无法parsing一个bean时,它会将parsing请求传递给它的父类。
- ApplicationContext的父级在其构造函数中指定。
我想了解何时使用ApplicationContext层次结构(而不是一个单一的ApplicationContext)。
我可以从谷歌最好的是这个 。 而我所理解的是,如果一个应用程序在各个层次上定义了大量的bean,那么每一个有自己的ApplicationContext的层将是一个好处。 不明白的是,这样做的好处是什么,好处如何?
TIA,维杰
这个经典的用例是当你在一个webapp中有多个Spring DispatcherServlet
,每个servlet都有自己的app context,但是需要在它们之间共享bean。 在这种情况下,在webapp级别添加第三个上下文,这是每个servlet appcontext的父级。
您可以进一步采用这种模式,例如,如果您将多个webapp捆绑到一个JavaEE EAR中。 在这里,EAR可以有它自己的上下文,它是各个webapp上下文的父节点,它是servlet上下文的父节点,依此类推。 你有这种责任等级。
在其他情况下,上下文结构是由其他因素决定的。 例如,Spring Security独立于Spring MVC,并且要求其configurationbean进入webapp上下文。 如果你想使用Spring MVC,那么它的configuration必须进入以webapp上下文作为父项的servlet上下文。
- 什么时候在Spring中使用ModelAndView vs Model?
- 在应用程序启动时使用Spring MVC执行Java类
- 为什么我会使用Java / Spring的Scala / Lift?
- 如何将钩子添加到应用程序上下文初始化事件?
- 什么是Spring中的Dispatcher Servlet?
- SpringMVC RequestMapping GET参数
- Spring RedirectAttributes:addAttribute vs addFlashAttribute
- Spring MVC – 如何在Spring控制器中获取地图中的所有请求参数?
- SpringMVC可以configuration为处理所有请求,但排除静态内容目录吗?