为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

阿波罗的战车 2018-10-24 07:46:21
平常的子类继承父类通过extends关键字来实现,那么Spring父容器与Spring MVC子容器是如何体现出父子关系的呢? 容器指的是一个类吗?Spring容器是哪个类,Spring MVC容器又是哪个类?
查看完整描述

1 回答

?
莫回无

TA贡献1865条经验 获得超7个赞

所谓容器,就是上下文,在这同一个上下文里,大家可以共享一些东西。

Spring应用启动时,会先读取web.xml文件,调用ContextLoaderListener创建Spring容器,也就是你说的父容器。

    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

Listener创建完之后,开始创建Servlet:

    <servlet>
        <servlet-name>SpringMVC</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    </servlet>

这时候这个DispatcherServlet开始试图创建SpringMVCApplicationContext,它先找刚才由上面那个ContextLoaderListener创建的SpringApplicationContext,找到后,把SpringApplicationContext作为参数传给DispatcherServletApplicationContextsetParent方法,这样SpringMVC的容器就变成了Spring容器的儿子。

因为在SpringMVC这个子容器创建的时候指定了它的Spring父容器,所以儿子能找到父亲,所以SpringMVC这个子容器里的Bean可以调用父容器的服务,而父容器不知道有这个儿子的存在(一个不负责任的父亲),父容器里的Bean不能调用子容器里的服务。


查看完整回答
1 反对 回复 2018-10-24
  • 1 回答
  • 0 关注
  • 966 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信