区别1:
@RestController是@Controller的升级版
区别2:
@RestController用于标识一个类作为控制器,并且可以处理HTTP请求。控制器类通常用于接收用户输入并决定返回响应的内容。
@RestController通常用于返回JSON或XML数据
区别3:返回值的处理方式
@Controller可以返回视图名称或模型对象
@RestController将以JSON或XML格式返回数据。这意味着@RestController不会将返回的对象解析为视图,而是直接发送给客户端。
举个栗子:
@Controller
public class HomeController{
@RequestMapping("pages")
public String home(){
//返回index的视图文件(一般为jsp)
return "index";
}
}
HomeController类被标记为一个控制器,并包含一个处理根路径("/")的请求的方法。该方法返回一个视图名称,Spring MVC将对应的视图(jsp)渲染给用户。
访问路径:http://localhost:8080/pages/index.jsp
@RestController
public class UserController{
@GetMapping("/users")
public List<User> getUsers(){
//返回List集合
return userRepository.findAll();
}
}
UserController类被标记为一个REST控制器,并包含一个处理GET请求的方法。该方法返回一个User对象列表,Spring MVC将自动将其转换为JSON(java实体类对象)响应。
访问路径:http://localhost:8080/users