@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
。有关更多详细信息,请参阅 Asynchronous Requests 和 Reactive Types。
可以使用 MVC Config 的 Message Converters 选项配置或定制消息转换。
可以将 @ResponseBody
方法与 JSON 序列化视图结合使用。有关详细信息,请参阅 Jackson JSON。