注解辨析:@Controller vs. @RestController

@RestController注解相当于@ResponseBody + @Controller组合在一起的作用。

相同:二者都用来表示Spring的某个类是否可以接受http请求

区别:

(1)是否可以返回页面

答:@RestController无法返回指定页面,@Controller可以。

解析:对于Controller,如果只是使用@RestController注解,则无法返回指定页面,此时配置的视图解析器InterResourceViewResolver不起作用,返回的内容就是return里的内容。如果需要返回指定页面,则需要用@Controller配合视图解析器InterResourceViewResolver才可以。

(2)返回内容

如果需要返回JSON,XML或自定义mediaType内容到页面,仅需@RestController即可,这个注解对于返回数据比较方便,因为它会自动将对象实体转换为JSON字符串格式,而@Controller需要在对应的方法上加上@ResponseBody才可以。

你可能感兴趣的:(java)