本部分示例代碼見此項目的 mvc 分支下的 RespBodyController.java 和 TheRestController.javahtml
註解@ResponseBody
和@RequestBody
很像。這個註解能夠放到一個方法中,指示返回類型應該直接被寫進HTTP響應體中(而不是放到一個Model中、也不是翻譯爲一個視圖名)。例如:java
@GetMapping("/something") @ResponseBody public String helloWorld() { return "Hello World"; }
上面的示例會返回文本 「Hello World」,並把它寫到HTTP響應流中。git
就像@RequestBody
,Spring 使用HttpMessageConverter
把返回的對象轉換到請求體中。更多關於這些轉換器的消息,參見消息轉換器.web
@RestController
建立 REST 控制器 一個很是常見的場景是讓控制器實現 REST API,所以只服務於 JSON、XML 或者自定義的 MediaType 內容。爲了方便,避免在全部的@RequestMapping
方法上加上@ResponseBody
註解,你能夠用@RestController
註解你的控制器類.spring
@RestController 是一個模板註解,它合併了@ResponseBody
和@Controller
。不只如此,它還爲你的控制器賦予了更多的意義,在將來的發行版本中也將包含更多語義。api
就像常規的@Controllers
,@RestController
能夠由@ControllerAdvice
或者@RestControllerAdvice
Bean 協助。詳情見用 @ControllerAdvice 和 @RestControllerAdvice 通知控制器」一節mvc