对于最新稳定版本,请使用 Spring Framework 7.0.6spring-doc.cadn.net.cn

@ResponseBody

你可以在方法上使用 @ResponseBody 注解,通过 HttpMessageConverter 将返回值序列化到响应体中。 以下代码清单展示了一个示例:spring-doc.cadn.net.cn

@GetMapping("/accounts/{id}")
@ResponseBody
public Account handle() {
	// ...
}
@GetMapping("/accounts/{id}")
@ResponseBody
fun handle(): Account {
	// ...
}

@ResponseBody 也支持在类级别使用,此时它会被所有控制器方法继承。这正是 @RestController 的作用,它本质上只是一个元注解,同时标记了 @Controller@ResponseBodyspring-doc.cadn.net.cn

可以返回一个 Resource 对象来表示文件内容,将所提供的资源的 InputStream 内容复制到响应的 OutputStream 中。请注意,为了在复制到响应后可靠地关闭流,InputStream 应由 Resource 句柄延迟获取。如果您为此目的使用 InputStreamResource,请确保通过按需提供 InputStreamSource 的方式来构造它(例如,通过一个用于获取实际 InputStream 的 lambda 表达式)。spring-doc.cadn.net.cn

您可以将 @ResponseBody 与响应式类型一起使用。 更多详情请参阅异步请求响应式类型spring-doc.cadn.net.cn

您可以使用消息转换器选项 来配置或自定义消息转换,该选项位于MVC 配置中。spring-doc.cadn.net.cn

您可以将 @ResponseBody 方法与 JSON 序列化视图结合使用。 详情请参见Jackson JSONspring-doc.cadn.net.cn