@RestController 在 Spring MVC 中就是 @Controller 和 @ResponseBody 注解的集合。
@RestController 注解是从 Spring 4.0 版本开始添加进来的,主要用于更加方便的构建 RESTful Web 服务。
@ResponseBody
该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。使用此注解此次请求将不再走视图处理器,而是直接将此响应结果写入到输入流中,其效果等同于使用response对象输出指定格式的数据。
在 RESTful 的服务中,我们大部分情况是使用 JSON 为返回数据的,所以你可以直接使用 @RestController 替换掉 @Controller 和 @ResponseBody。
根据上面的解释,下面的 2 段代码是完全一样的:
@Controller
@ResponseBody
public class MVCController {
.. your logic
}
@RestController
public class RestFulController {
.... your logic
}
https://www.cwiki.us/display/SpringBootZH/questions/57939042