@ResrConttroller和@Controller的区别
@RestController注解相当于@ResponseBody + @Controller合在一起的作用。
@ResponseBody的作用其实是将java对象转为json格式的数据。
@ResponseBody注解的作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML数据。
注意:在使用此注解之后不会再走视图处理器,而是直接将数据写入到输入流中,他的效果等同于通过response对象输出指定格式的数据。
如果需要返回到指定页面,则需要用 @Controller配合视图解析器InternalResourceViewResolver才行。
@Controller
public class UserController {
@Resource
private UserMapper userMapper;
@GetMapping("/getAll")
@ResponseBody
public List<User> getAll(){
return userMapper.getAll();
}
}
@RestController public class UserController { @Resource private UserMapper userMapper; @GetMapping("/getAll") public List<User> getAll(){ return userMapper.getAll(); } }
两者效果是一样的:


浙公网安备 33010602011771号