Spring父容器与Spring MVC子容器是如何体现出父子关系的

平常的子类继承父类通过extends关键字来实现,那么Spring父容器与Spring MVC子容器是如何体现出父子关系的呢?
容器指的是一个类吗?Spring容器是哪个类,Spring MVC容器又是哪个类?


阿波罗的战车
浏览 968回答 1
1回答

莫回无

所谓容器,就是上下文,在这同一个上下文里,大家可以共享一些东西。在Spring应用启动时,会先读取web.xml文件,调用ContextLoaderListener创建Spring容器,也就是你说的父容器。&nbsp;&nbsp;&nbsp;&nbsp;<listener> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> &nbsp;&nbsp;&nbsp;&nbsp;</listener>Listener创建完之后,开始创建Servlet:&nbsp;&nbsp;&nbsp;&nbsp;<servlet> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<servlet-name>SpringMVC</servlet-name> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> &nbsp;&nbsp;&nbsp;&nbsp;</servlet>这时候这个DispatcherServlet开始试图创建SpringMVC的ApplicationContext,它先找刚才由上面那个ContextLoaderListener创建的Spring的ApplicationContext,找到后,把Spring的ApplicationContext作为参数传给DispatcherServlet的ApplicationContext的setParent方法,这样SpringMVC的容器就变成了Spring容器的儿子。因为在SpringMVC这个子容器创建的时候指定了它的Spring父容器,所以儿子能找到父亲,所以SpringMVC这个子容器里的Bean可以调用父容器的服务,而父容器不知道有这个儿子的存在(一个不负责任的父亲),父容器里的Bean不能调用子容器里的服务。
打开App,查看更多内容
随时随地看视频慕课网APP