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