|
对于最新稳定版本,请使用 Spring Framework 7.0.6! |
@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。