管理springmvc组件
概述
在使用springmvc时要配置哪些东西
-
前端控制器
-
控制器映射器和适配器
- 映射器 Map<Set<String>,Object>
- Set<String> 存放资源地
- @RequestMapper(value={“helle2”,”hello2”})
- Object 存放方法对象和方法所有的对象的对象
- 执行方法 method.invoke(obj,args) Method
- Set<String> 存放资源地
- 适配器
- @Controller
- 实现Controller接口
- 实现HttpRequestHandler的接口
- 映射器 Map<Set<String>,Object>
-
视图解析器
InternalResourceViewResolver -
文件上传的
-
拦截器
前端控制器的自动管理
找到 WebMvcAutoConfiguration
找到 DispatcherServletAutoConfiguration
创建
注册
控制器的自动管理[就是自定义的controller]
自动扫描
|--默认扫描启动类所有的包及其子包;
如果不在启动类所有的包及其子包下面
要使用 @CompomentScan(basePackage={“com.sxt.controller”,”com.bjsxt.controller”})
视图解析器的自动管理
找到 WebMvcAutoConfiguration
@Bean
@ConditionalOnMissingBean
public InternalResourceViewResolver defaultViewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix(this.mvcProperties.getView().getPrefix());
resolver.setSuffix(this.mvcProperties.getView().getSuffix());
return resolver;
}
@Bean
@ConditionalOnBean(View.class)
@ConditionalOnMissingBean
public BeanNameViewResolver beanNameViewResolver() {
BeanNameViewResolver resolver = new BeanNameViewResolver();
resolver.setOrder(Ordered.LOWEST_PRECEDENCE - 10);
return resolver;
}
@Bean
@ConditionalOnBean(ViewResolver.class)
@ConditionalOnMissingBean(name = "viewResolver", value = ContentNegotiatingViewResolver.class)
public ContentNegotiatingViewResolver viewResolver(BeanFactory beanFactory) {
ContentNegotiatingViewResolver resolver = new ContentNegotiatingViewResolver();
resolver.setContentNegotiationManager(beanFactory.getBean(ContentNegotiationManager.class));
// ContentNegotiatingViewResolver uses all the other view resolvers to locate
// a view so it should have a high precedence
resolver.setOrder(Ordered.HIGHEST_PRECEDENCE);
return resolver;
}
进入ContentNegotiatingViewResolver
总结
ContentNegotiatingViewResolver 是一个视图解析器的收集器
只要IOC容器里面有实现有ViewResolver接口的对象都会被收集起来 如ThymeleafViewResolver
文件上传和下载的视图解析器
找到MultipartAutoConfiguration
找到MultipartProperties
静态资源的访问
classpath:resources/MATE-INF/resources
classpath:resources/resources
classpath:resources/static
classpath:resources/public
消息转化
找到 WebMvcAutoConfiguration
格式化转化
欢迎页面的配置
以前web.xml
<welcome-file-list>
</webcome-file-list>
Springboot默认配置是static/index.html