1、@RestController注解相当于是@ResponseBody和@Controller合并使用。
2、@Controller注解是将类标记为一个SpringMVC Controller,它是可以返回一个页面的。如果想在controller中返回一个页面,应该单独使用@Controller。
3、要想返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。
4、这样如果多个方法都要返回JSON,XML或自定义mediaType内容到页面那么就需要每个方法上面加@ResponseBody注解,而@RestController注解这个注解恰好解决这个问题。
简单的记忆方法:
返回页面@Controller, 返回数据@RestController。
example:
@RestController
public class HelloController{
@RequestMapping("/say")
public String sayHi(){
return"Hello Spring Boot";
}
}
上下两个方法表达的意思相同
@Controller
public class HelloController{
@RequestMapping("/say")
public @ResponseBody String sayHi(){
return"Hello Spring Boot";
}
}