我试图在春天理解ApplicationContext层次结构。
我学到了以下内容
我想了解何时使用ApplicationContext层次结构(而不是单个ApplicationContext)。
我从谷歌获得的最好成绩是this。而我的理解是,如果一个应用程序在各个层定义了大量的bean,那么每个层都有自己的ApplicationContext将是一个好处。不明白的是这样做有什么好处?如何实现收益?
TIA, 维杰
答案 0 :(得分:48)
这是一个经典的用例,当你在一个webapp中有多个Spring DispatcherServlet
时,每个servlet都有自己的应用程序上下文,但需要在它们之间共享bean。在这种情况下,您在webapp级别添加第3个上下文,该上下文是每个servlet appcontexts的父级。
您可以进一步采用此模式,例如,如果您将多个Web应用程序捆绑到单个JavaEE EAR中。这里,EAR可以有自己的上下文,它是各个webapp上下文的父节点,它是servlet上下文的父节点,依此类推。你有这种责任等级。
在其他情况下,上下文结构由其他因素决定。例如,Spring Security独立于Spring MVC,并且要求其配置bean进入webapp上下文。如果你想使用它的Spring MVC,那么它的配置必须进入servlet上下文,它具有根webapp上下文作为其父。