代码改变世界

@RestController和@Controller的区别与作用

2019-07-31 10:24  话猫  阅读(5972)  评论(0编辑  收藏  举报

在springMvc中controller层类上的要使用@Controller来注明该类属于控制层,在controller层常返回的数据形式有以下几种:

  页面:静态页面

  ModelAndView:返回页面和相应数据

  json字符串:如果某个类设计初衷就是返回json字符串,那么该类就可以使用@Controller + @ResponseBody,还可以使@RestCotroller简化书写

  @RestCotroller源码

···

  从上面的源码中可以清晰的看到@RestController = @Controller + @ResponseBody

使用@Controller修饰类,可以根据需要返回各种我们所需的数据(json(方法上使用@ResponseBod),ModelAndView,静态页面),而使用RestController修饰类,最后返回结果都会被解析成json字符串,适合所有的方法返回值都是json数据