3.七、@ResponseBody 和 @RestController

  本部分示例代碼見此項目的 mvc 分支下的 RespBodyController.java 和 TheRestController.javahtml


① 使用註解@ResponseBody映射響應體

  註解@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

相關文章
相關標籤/搜索