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