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