
先说一下,头条题目不让打@,真的抱歉。
springboot中@RestController和@Controller的区别,其实是一个很容易忽略的点。说一下我的踩坑经历,因为之前项目是前后端分离的,前端用的vue,后端用的springboot,所以后端的controller里 都是@RestController,自然也没有在意。最近又接触到一个项目,不是用vue这种前后端分离的,习惯了写@RestController,用return "/index"却发现怎么也跳不到页面。
原来问题出在这里:
相同点:都是用来表示Spring某个类的是否可以接收HTTP请求
不同点:@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 MyController { }
@ResponseBody 加载Controller表明整个的Controller中都是返回数据而不是去找相应的页面地址!!!!
















