@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
方法與 JSON 序列化檢視結合使用。請參閱 Jackson JSON 以取得詳細資訊。