内容来自《Java Web 程序员面试笔试宝典》

【出现频率】★★★☆☆ 【学习难度】★★☆☆☆

答案:控制器的注解可用@Controller和@RestController。两者区别如下。

1)@RestController注解相当于@ResponseBody与@Controller合在一起的作用。如果只是使用@RestController注解Controller,则Controller中的方法无法返回JSP页面或者HTML,配置的视图解析器InternalResourceViewResolver不起作用,返回的内容就是return中的内容。

2)如果需要返回到指定页面,则需要用@Controller配合视图解析器才行。如果需要返回JSON、XML或自定义MediaType内容到页面,则需要在对应的方法上添加@ResponseBody注解。