使用基于@ResponseBody注释的MappingJackson2JsonView支持在Spring REST中返回JSON响应有什么好处?

Raj*_*Roy 7 java spring json spring-mvc

我正在阅读本教程,发现我们可以在Spring REST中使用MappingJackson2JsonViewSupport @ResponseBodyon Annotation 返回JSON响应.

显然使用@ResponseBodyAnnotation非常简单,易于实现,而使用MappingJackson2JsonView支持位复杂.这是我个人的意见,但我想知道在Spring REST中使用MappingJackson2JsonView支持在@ResponseBody Annotation上返回JSON响应有什么好处,如果有的话?有人可以解释一下他们之间哪个更好,为什么?何时使用MappingJackson2JsonView支持以及何时使用@ResponseBody Annotation在Spring REST中返回JSON响应?

Tal*_*mli 1

我认为,MappingJackson2JsonView 是很好的实现。

但 ResponseBody 有一些优点。在 @ResponseBody 的帮助下,您可以返回对象而不是作为属性例如

class Student extends ResponseDTO{
   publci String name = "John"
}
...
@ResponseBody ResponseDTO  getStudentInfo(){
  return new Student();
}
Run Code Online (Sandbox Code Playgroud)

结果将是 { "name":"John" }

使用 MappingJackson2JsonView 您必须在属性中返回对象,例如

{
  "student": {
               "name":"John"
             }
}
Run Code Online (Sandbox Code Playgroud)

使用@ResponseBody,您还可以通过内联对象扩展返回结果

 @ResponseBody getStudentInfo(){
  return new Object(){
     public String name="John"
 };
}
Run Code Online (Sandbox Code Playgroud)

但这不是很好的实施

一些良好的实现 MappingJackson2JsonView 是好的。但对于更多功能,如返回对象或返回 ResponseDto,ResponseBody 更有用