Spring 父子容器

Posted LarryZeal

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring 父子容器相关的知识,希望对你有一定的参考价值。

必须要说的是,父子容器是通过设置形成的关系。

容器实现了ConfigurableApplicationContext或ConfigurableBeanFactory接口,这两个接口中分别有setParent及setParentBeanFactory方法,可以将指定容器设置为当前容器的父容器。

 

首先,默认情况下,Spring + SpringMVC 框架的web项目,会先创建WebApplicationContext(应用上下文环境,就是IoC容器啦),并以WebApplicationContext.ROOTWEBAPPLICATIONCONTEXTATTRIBUTE为Key,将其存储到ServletContext中 ---这就是根容器。

然后,创建DispatcherServlet,注意,这是个Servlet,而Servlet也是有ServletContext的,而且,它也会创建自己的IoC上下文(IoC容器)。这个IoC容器会去ServletContext中查找根容器,并将其设为自己的父容器!!!---小疑问,这个ServletContext和IoC容器是否一个???待验证。。

 

简单的可以推知:子容器可以访问父容器中的bean,父容器则无法访问子容器中的内容!!!

 

 

参考:

spring的启动过程

Spring中父子容器的实现实例 

以上是关于Spring 父子容器的主要内容,如果未能解决你的问题,请参考以下文章

spring父子容器

Spring中父子容器的实现实例

Spring父子容器

[转]Spring IOC父子容器简介

03 Spring的父子容器

Spring MVC学习—Spring MVC中容器的层次结构以及父子容器的概念