弹簧@Controller和@RestController注释之间的区别

2022-08-31 04:38:17

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

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


答案 1
  • @Controller用于将类标记为 Spring MVC 控制器。
  • @RestController是一个方便的注释,它只做添加和注释(参见:Javadoc@Controller@ResponseBody)

因此,以下两个控制器定义应该做同样的事情

@Controller
@ResponseBody
public class MyController { }

@RestController
public class MyRestController { }

答案 2

在下面的代码中,我将向您展示@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


推荐