
在DispatcherServlet的父类FrameworkServlet中,存在属性:
webApplicationContext,相当于在DispatcherServlet内部有个属性指向spring容器


1、Tomact启动
2、解析web.xml文件
3、DispatcherServlet实例化
4、DispatcherServlet对象.init方法,创建spring容器
5、接收请求,处理请求
(对于自定义的Servlet而言,可以再去额外指定一些其他动作。自定义的Servlet都会继承HttpServlet,只需在自己的Servlet中重写init方法即可)
可以大致看下源码逻辑:




如果web.xml中这样配置

可以思考下,这样配置(配了两个Servlet)会不会有什么问题?
下面简单画图说明下:

有两个DispatcherServlet对象,那么也有两个spring容器。
每个DispatcherServlet内部都有一个spring容器,是各自单独的,互不影响的
按照上图的架构,当前tomcat中有2个AppService的bean(两个spring容器是单独的,都会去扫描)。
但其实代码里面,只定义了一个AppService,这样做的话,其实是有点浪费的。
那能不能保证这个架构里面只有一个AppService的bean呢?
修改下结构(引出父子容器):

SpringMVC的父子容器有什么案例么??
其实很少有这种按钮。
可以看下官网文档
