管理springmvc组件——前端控制器、控制器映射器和适配器、视图解析器、文件上传的、拦截器||消息转化

管理springmvc组件

概述

在使用springmvc时要配置哪些东西

  1. 前端控制器

  2. 控制器映射器和适配器

    1. 映射器  Map<Set<String>,Object>
      1. Set<String> 存放资源地   
        1. @RequestMapper(value={“helle2”,”hello2”})
      2. Object    存放方法对象和方法所有的对象的对象
        1. 执行方法 method.invoke(obj,args)   Method
    2. 适配器  
      1. @Controller
      2. 实现Controller接口
      3. 实现HttpRequestHandler的接口
  3. 视图解析器

    InternalResourceViewResolver
  4. 文件上传的

  5. 拦截器



前端控制器的自动管理

找到  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

 

进入WebMvcAutoConfiguration

发布了529 篇原创文章 · 获赞 115 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/qq_39368007/article/details/105621605