你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

SpringBoot:Web开发和SpringMVC自动配置分析

2021-12-3 2:13:52

SpringBoot:Web开发和SpringMVC自动配置分析

  • 一、DispatcherServlet
  • 二、Spring MVC自动配置内容
  • 三、消息转换器HttpMessageConverter
  • 四、静态资源

一、DispatcherServlet

DispatcherServlet是Spring MVC核心的前端控制器,负责接收用户的请求,并根据用户的请求返回相应的视图给用户。

  • 用户发起请求,请求到达前端控制器DispatcherServlet,前端控制器再根据用户的URL请求调用处理器映射器查找匹配该URL的Handler,并返回一个执行链。
  • 然后,处理器适配器调用相应的Handler进行业务处理并返回给前端控制器一个ModelAndView对象。
  • 前端控制器再请求视图解析器对返回的逻辑视图进行解析。
  • 最后前端控制器将返回的视图进行渲染,并把数据封装到Request域中返回给用户。

二、Spring MVC自动配置内容

  • 自动配置了视图解析器
  • 静态资源文件处理
  • 自动注册了大量的转换器和格式转换器
  • 提供HttpMessageConvert对请求参数和返回结果进行处理
  • 自动注册了MessageCodesResolver
  • 默认欢迎页配置
  • favicon自动配置
  • 可配置的Web初始化绑定器

三、消息转换器HttpMessageConverter

在使用Spring MVC开发Web项目时,使用@RequestBody、@ResponseBody注解进行请求实体的转换和响应结果的格式化输出。

以JSON数据为例,这两个注解的作用分别可以将请求中的数据解析成JSON并绑定为实体对象,以及将响应结果以JSON格式返回给请求发起者,但HTTP请求和响应是基于文本的。

  • 将JSON格式的请求信息转换为一个对象
  • 将对象转换为JSON格式并输出为响应信息
 import lombok.Data;

@Data
public class ApplicationConfig {
    private final String version = "0.1";
    private String json_filename;
    private String common_cols;
    private boolean hive;

    @Override
    public String toString() {
        return "application{" + "\n"+
                "version=\"" + version + "\"\n" +
                " config_json_filename=\"" + json_filename + "\"\n" +
                " common_encrypt_cols=\"" + common_cols + "\"\n" +
                " enable_run_hive_ddl=" + hive +"\n"+
                '}';
    }
}

Json测试类

public class Test {

    public static void main(String[] args) {
        ApplicationConfig applicationConfig = new ApplicationConfig();
        applicationConfig.setVersion("v1");
        applicationConfig.setJson_filename("config.json");
        applicationConfig.setCommon_cols("");
        applicationConfig.setHive(true);

        System.out.println(applicationConfig.toString());

    }

四、静态资源

  • classpath:/META-INF/resources/
  • classpath:/resources/
  • classpath:/static/
  • classpath:/public/