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