@ResponseBody

您可以在方法上使用 @ResponseBody 註解,以便透過 HttpMessageConverter 將返回值序列化到響應體中。以下列表顯示了一個示例:

  • Java

  • Kotlin

@GetMapping("/accounts/{id}")
@ResponseBody
public Account handle() {
	// ...
}
@GetMapping("/accounts/{id}")
@ResponseBody
fun handle(): Account {
	// ...
}

類級別也支援 @ResponseBody,在這種情況下,它會被所有控制器方法繼承。這是 @RestController 的作用,它不過是一個標記了 @Controller@ResponseBody 的元註解。

可以返回一個 Resource 物件來表示檔案內容,將提供的資源的 InputStream 內容複製到響應 OutputStream 中。請注意,InputStream 應由 Resource 控制代碼延遲檢索,以便在將其複製到響應後可靠地關閉它。如果為此目的使用 InputStreamResource,請確保使用按需 InputStreamSource(例如,透過獲取實際 InputStream 的 Lambda 表示式)構造它。

您可以將 @ResponseBody 與響應式型別一起使用。有關更多詳細資訊,請參閱 非同步請求響應式型別

您可以使用 MVC 配置訊息轉換器 選項來配置或定製訊息轉換。

您可以將 @ResponseBody 方法與 JSON 序列化檢視結合使用。有關詳細資訊,請參閱 Jackson JSON