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/