@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
处理程序延迟检索 InputStream
。如果您正在为此目的使用 InputStreamResource
,请确保使用按需 InputStreamSource
构造它(例如,通过一个 lambda 表达式,该表达式检索实际的 InputStream
)。
您可以将@ResponseBody
方法与 JSON 序列化视图结合使用。有关详细信息,请参阅Jackson JSON。