spring @Controller和@RestController注释之间的区别。

@Controller注释可以同时用于Web MVC和REST应用程序吗? 如果是,我们如何区分它是Web MVC还是REST应用程序?


当前回答

而不是使用@Controller和@ResponseBody, @RestController让你在Spring 4.0和更高版本中公开Rest api。

其他回答

在下面的代码中,我将向您展示两者的区别 @ controller之间

@Controller
public class RestClassName{

  @RequestMapping(value={"/uri"})
  @ResponseBody
  public ObjectResponse functionRestName(){
      //...
      return instance;
   }
}

和@RestController

@RestController
public class RestClassName{

  @RequestMapping(value={"/uri"})
  public ObjectResponse functionRestName(){
      //...
      return instance;
   }
}

@ResponseBody默认是激活的。您不需要将它添加到函数签名之上。

而不是使用@Controller和@ResponseBody, @RestController让你在Spring 4.0和更高版本中公开Rest api。

@RestController是@Controller和@ResponseBody的组合。

@Controller类中的请求流,不使用@ResponseBody注释:

@RestController返回一个对象作为响应而不是视图。

@Controller返回View。@RestController返回ResponseBody。

@RestController是@Controller和@ResponseBody的组合,如果我们在方法签名中不使用@ResponseBody,那么我们需要使用@RestController。