文章汇总
??1,
官方文档:
@RestController is a stereotype annotation that combines @ResponseBody and @Controller.
意思是:
@RestController 注解相当于 @ResponseBody + @Controller 合在一起的作用.
1) 如果只是使用 @RestController 注解 Controller, 则 Controller 中的方法无法返回 jsp 页面, 配置的视图解析器 InternalResourceViewResolver 不起作用, 返回的内容就是 Return 里的内容.
例如: 本来应该到 success.jsp 页面的, 则其显示 success.
2) 如果需要返回到指定页面, 则需要用 @Controller 配合视图解析器 InternalResourceViewResolver 才行.
3) 如果需要返回 JSON,XML 或自定义 mediaType 内容到页面, 则需要在对应的方法上加上 @ResponseBody 注解.
??2,
1. Controller, RestController 的共同点
都是用来表示 Spring 某个类的是否可以接收 HTTP 请求
2. Controller, RestController 的不同点
@Controller 标识一个 Spring 类是 Spring MVC controller 处理器
@RestController: a convenience annotation that does nothing more than adding the@Controller and @ResponseBody annotations. @RestController 是 @Controller 和 @ResponseBody 的结合体, 两个标注合并起来的作用.
示例如下:
- @Controller
- @ResponseBody
- public class MyController { }
- @RestController
- public class MyRestController { }
来源: http://www.bubuko.com/infodetail-2689602.html