3.7、@ResponseBody 和 @RestController

  本部分示例代码见此项目的 mvc 分支下的 RespBodyController.java 和 TheRestController.java

① 使用注解@ResponseBody映射响应体

  注解@ResponseBody@RequestBody很像。这个注解可以放到一个方法中,指示返回类型应该直接被写进HTTP响应体中(而不是放到一个Model中、也不是翻译为一个视图名)。例如:

@GetMapping("/something")
@ResponseBody
public String helloWorld() { return "Hello World"; }

  上面的示例会返回文本 “Hello World”,并把它写到HTTP响应流中。

  就像@RequestBody,Spring 使用HttpMessageConverter把返回的对象转换到请求体中。更多关于这些转换器的消息,参见消息转换器.

② 使用注解@RestController创建 REST 控制器

  一个非常常见的场景是让控制器实现 REST API,因此只服务于 JSON、XML 或者自定义的 MediaType 内容。为了方便,避免在所有的@RequestMapping方法上加上@ResponseBody注解,你可以用@RestController注解你的控制器类.

  @RestController 是一个模板注解,它合并了@ResponseBody@Controller。不仅如此,它还为你的控制器赋予了更多的意义,在未来的发行版本中也将包含更多语义。

  就像常规的@Controllers@RestController可以由@ControllerAdvice或者@RestControllerAdvice Bean 协助。详情见用 @ControllerAdvice 和 @RestControllerAdvice 通知控制器”一节

    原文作者:行一
    原文地址: https://segmentfault.com/a/1190000006901506
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞