tomcat容器启动加载web.xml初始化springmvc相关策略组件
一、WebApplicationContext的层次结构
本来是想研究一下springMVC组件的,结果解决了以前的一个疑问。WebApplicationContext的层次结构
下面是从官网copy的一份web.xml
ContextLoaderListener:初始化一个Root WebApplicationContext:SpringIOC初始化一些中间services+datasouces的Bean
DispatcherServlet:初始化一个Servlet WebApplicationContext:SpringIOC初始化前端controllers+view resovlers+HandleMapping的Bean
父子关系:Servlet WebApplicationContext.setParent(Root WebApplicationContext);子容器找不到就去父容器找。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | < web-app > < listener > < listener-class >org.springframework.web.context.ContextLoaderListener</ listener-class > </ listener > < context-param > < param-name >contextConfigLocation</ param-name > < param-value >/WEB-INF/app-context.xml</ param-value > </ context-param > < servlet > < servlet-name >app</ servlet-name > < servlet-class >org.springframework.web.servlet.DispatcherServlet</ servlet-class > < init-param > < param-name >contextConfigLocation</ param-name > < param-value ></ param-value > </ init-param > < load-on-startup >1</ load-on-startup > </ servlet > < servlet-mapping > < servlet-name >app</ servlet-name > < url-pattern >/app/*</ url-pattern > </ servlet-mapping > </ web-app > |
二、DispatcherServlet的组件
servlet.init()时初始化SpringIOC容器外,还有初始化了一部分SpringMVC组件
1 2 3 4 5 6 7 8 9 10 11 12 | /* org.springframework.web.servlet.DispatcherServlet#initStrategies 认识一下*/ protected void initStrategies(ApplicationContext context) { initMultipartResolver(context); initLocaleResolver(context); initThemeResolver(context); initHandlerMappings(context); initHandlerAdapters(context); initHandlerExceptionResolvers(context); initRequestToViewNameTranslator(context); initViewResolvers(context); initFlashMapManager(context); } |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持自学编程网。
- 本文固定链接: https://zxbcw.cn/post/182091/
- 转载请注明:必须在正文中标注并保留原文链接
- QQ群: PHP高手阵营官方总群(344148542)
- QQ群: Yii2.0开发(304864863)