@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。