@RestController注解相当于@ResponseBody + @Controller组合在一起的作用。
相同:二者都用来表示Spring的某个类是否可以接受http请求
区别:
(1)是否可以返回页面
答:@RestController无法返回指定页面,@Controller可以。
解析:对于Controller,如果只是使用@RestController注解,则无法返回指定页面,此时配置的视图解析器InterResourceViewResolver不起作用,返回的内容就是return里的内容。如果需要返回指定页面,则需要用@Controller配合视图解析器InterResourceViewResolver才可以。
(2)返回内容
如果需要返回JSON,XML或自定义mediaType内容到页面,仅需@RestController即可,这个注解对于返回数据比较方便,因为它会自动将对象实体转换为JSON字符串格式,而@Controller需要在对应的方法上加上@ResponseBody才可以。