@ResponseBody

您可以在方法上使用 @ResponseBody 註解,以透過 HttpMessageConverter 將回傳值序列化至回應 body。以下列表顯示範例

  • Java

  • Kotlin

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

@ResponseBody 也支援在類別層級使用,在這種情況下,它會被所有控制器方法繼承。這是 @RestController 的效果,它只是一個標記有 @Controller@ResponseBody 的 meta-annotation。

可以回傳 Resource 物件以用於檔案內容,將所提供資源的 InputStream 內容複製到回應 OutputStream。請注意,InputStream 應由 Resource handle 延遲擷取,以便在複製到回應後可靠地關閉它。如果您將 InputStreamResource 用於此目的,請務必使用隨需 InputStreamSource (例如,透過 lambda 運算式擷取實際的 InputStream) 來建構它。

您可以將 @ResponseBody 與反應式類型搭配使用。請參閱 非同步請求反應式類型 以取得更多詳細資訊。

您可以使用 訊息轉換器 選項的 MVC 組態 來組態或自訂訊息轉換。

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