1:介绍
@RestController
和 @Controller
是 Spring MVC 中常用的两个注解,它们都可以用于定义一个控制器类。
2:区别
- 1.返回值类型不同:
@Controller
返回视图,而@RestController
返回 JSON 或 XML 等格式的数据。 - 2.默认情况下,@Controller 所有的方法都默认返回视图,需要在方法上添加 @ResponseBody 注解才能返回数据;而: @RestController 所有的方法都默认返回数据,不需要添加额外的注解。
3. @RestController
相当于@Controller
+ @ResponseBody
,因此 @RestController
更加简便,代码量更少
3:总体来说
如果你的控制器主要是用于返回数据,建议使用 @RestController;如果你的控制器主要是用于返回视图,建议使用 @Controller。
当然,如果需要既返回视图又返回数据,则可以在方法上添加 @ResponseBody 注解,即可同时支持视图和数据的返回。
4:社区地址
https://bbs.csdn.net/forums/9cd650b7a75f4ed68f8fbd9da48fd774?spm=1001.2014.3001.6682