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;
}
}
- DispatcherServlet#doDispatch
- 返回值解析器 RequestMappingHandlerAdapter#invokeHandlerMethod
- ServletInvocableHandlerMethod#invokeAndHandle
- 寻找返回值处理器 HandlerMethodReturnValueHandlerComposite#selectHandler
![](https://img.haomeiwen.com/i20154612/d5ce6b0f89fcd7f3.png)
2. Spring MVC 支持的返回值类型
- ModelAndViewMethodReturnValueHandler
- ModelMethodProcessor
- ViewMethodReturnValueHandler
- RequestResponseBodyMethodProcessor
2.1 RequestResponseBodyMethodProcessor
- 处理 @ResponseBody 注解
- MessageConverter 将数据写为 JSON
2.2 HttpMessageConverter
- ByteArrayHttpMessageConverter
- StringHttpMessageConverter
- ResourceHttpMessageConverter
- MappingJackson2HttpMessageConverter
网友评论