<!-- 初始化spring容器 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext-*.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>

<!-- 前端控制器 -->
<servlet>
<servlet-name>test</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- contextConfigLocation不是必须的, 如果不配置contextConfigLocation, springmvc的配置文件默认在:WEB-INF/servlet的name+"-servlet.xml" -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>taotao-manager-web</servlet-name>
<!-- 拦截所有请求jsp除外 -->
<url-pattern>/</url-pattern>

</servlet-mapping>

org.springframework.web.context.ContextLoaderListenerorg.springframework.web.servlet.DispatcherServlet

都会加载spring容器,此时两个个容器是父子关系,ContextLoaderListener是父容器,DispatcherServlet是子容器,子容器能加载父容器下的东西,父容器不能加载子容器的东西。

既然.DispatcherServlet能创建容器为什么不让该容器加载spring的全部文件配置,答案是可以的,但是为了项目的可扩展性,比如spring还想集成struts2就可以用符容器集成,这样解耦了


Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐