关于@Controller和@RestController的理解

@RestController注解相当于是@ResponseBody和@Controller合并使用。

@Controller注解是将类标记为一个SpringMVC Controller,它是可以返回一个页面的。如果想在controller中返回一个页面,应该单独使用@Controller。

要想返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。

这样如果多个方法都要返回JSON,XML或自定义mediaType内容到页面那么就需要每个方法上面加@ResponseBody注解,而@RestController注解这个注解恰好解决这个问题。

简单的记忆方法:
返回页面@Controller,
返回数据@RestController。
举个栗子:

@RestController
public class HelloController{
    @RequestMapping("sayHi")
    public String sayHi(){
  return"Hello Spring Boot";
    }
}

等于

@Controller
public class HelloController{
    @RequestMapping("sayHi")
    public @ResponseBody String sayHi(){
  return"Hello Spring Boot";
    }
}

你可能感兴趣的:(关于@Controller和@RestController的理解)