在前面的初步接触中,记得 配置 web.xml,必须配置servlet,配置的时候,是配置的一个org.springframework.web.servlet.DispatcherServlet。
在配置spring配置文件时,提到有些可以默认不用配置,又增加了些class,大概说一下。
首先,看源码:包package org.springframework.web.servlet。以下这个方法在WebApplicationContext初始化时自动执行,扫描bean,根据名字匹配。
protected void initStrategies(ApplicationContext context) { this.initMultipartResolver(context); this.initLocaleResolver(context); this.initThemeResolver(context); this.initHandlerMappings(context); this.initHandlerAdapters(context); this.initHandlerExceptionResolvers(context); this.initRequestToViewNameTranslator(context); this.initViewResolvers(context); this.initFlashMapManager(context); }
所有默认:
// 只允许一个,Bean中查找名为localResolver、类型为LocaleResolver的,没有则默认
org.springframework.web.servlet.LocaleResolver=org.springframework.web.servlet.il8n.AcceptHeaderLocalResolver
// 只允许一个,Bean中查找名为themeResolver、类型为ThemeResolver的,没有则默认
org.springframework.web.servlet.ThemeResolver=org.springframework.web.servlet.theme.FixThemeResolver
//允许多个。受detectAllHandlerMappings属性影响,true可多个。查找与前面雷同,但不检索名字,不允许多个时,找名为handlerMapping的。没找到,默认下面第一个。
org.springframework.web.servlet.HandlerMapping=org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping,org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping
//与上个雷同,没找到时,使用DispatcherServlet.properties配置文件??中制定的3个实现类分别创建。
org.springframework.web.servlet.HandlerAdapter=org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter,org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter,org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter
// 与上述雷同。没找到对应,用户可自定义,添加到DispatcherServlet.properties配置文件??中。
org.springframework.web.servlet.HandlerExceptionResolver=org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerExceptionResolver,org.springframework.web.servlet.mvc.annotation.ResponseStatusExeptionResolver,org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver
// 只允许一个
org.springframework.web.servlet.RequestToViewNameTranslator=org.springframework.web.servlet.view.DefaultRequesToViewNameTranslator
// 允许多个,与多个匹配的雷同
org.springframework.web.servlet.ViewResolver=org.springframework.web.servlet.view.InternalResourceViewResolver
// 只允许一个
org.springframework.web.servlet.FlashMapManaer=org.springframework.web.servlet.support.SessionFlashMapManager
还有一个MuliipartResolver文件上传解析器,没有定义则不加载。