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