spring @Controller 和@RestController 注解的区别

新手上路,请多包涵

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

@Controller 注释可以同时用于 Web MVC 和 REST 应用程序吗?

如果是,我们如何区分它是 Web MVC 还是 REST 应用程序。

原文由 Srikanth 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 520
2 个回答
  • @Controller 用于将类标记为 Spring MVC 控制器。
  • @RestController 是一个方便的注解,除了添加 @Controller@ResponseBody 注释(参见: Javadoc

所以下面两个控制器定义应该做同样的事情

@Controller
@ResponseBody
public class MyController { }

@RestController
public class MyRestController { }

原文由 micha 发布,翻译遵循 CC BY-SA 3.0 许可协议

在下面的代码中,我将向您展示 @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 默认激活。您无需将其添加到函数签名上方。

原文由 BERGUIGA Mohamed Amine 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题