美文网首页js css html
Spring Boot Web 响应处理

Spring Boot Web 响应处理

作者: Tinyspot | 来源:发表于2022-12-23 21:52 被阅读0次

1. 方法标注 @ResponseBody

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

spring-boot-starter-web 里有 spring-boot-starter-json(默认是 jackson)

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-json</artifactId>
</dependency>

1.1 示例

@Controller
public class ResponseController {

    @ResponseBody
    @GetMapping("/get/user")
    public User getUser() {
        User user = new User();
        user.setName("tinyspot");
        return user;
    }
}
  1. DispatcherServlet#doDispatch
  2. 返回值解析器 RequestMappingHandlerAdapter#invokeHandlerMethod
  3. ServletInvocableHandlerMethod#invokeAndHandle
  4. 寻找返回值处理器 HandlerMethodReturnValueHandlerComposite#selectHandler
image.png

2. Spring MVC 支持的返回值类型

  • ModelAndViewMethodReturnValueHandler
  • ModelMethodProcessor
  • ViewMethodReturnValueHandler
  • RequestResponseBodyMethodProcessor

2.1 RequestResponseBodyMethodProcessor

  • 处理 @ResponseBody 注解
  • MessageConverter 将数据写为 JSON

2.2 HttpMessageConverter

  • ByteArrayHttpMessageConverter
  • StringHttpMessageConverter
  • ResourceHttpMessageConverter
  • MappingJackson2HttpMessageConverter

相关文章

网友评论

    本文标题:Spring Boot Web 响应处理

    本文链接:https://www.haomeiwen.com/subject/jqavqdtx.html