@RestController和@Controller+@Responsebody理解

        如果只需要返回的是数据(如:JSON、XML或自定义的metatype等数据类型)不需要返回视图时,@RestController完全等同于@Controller+@Responsebody

       查看RestController源码发现,@RestController注解包含了原来的@Controller和@ResponseBody注解

        如果Controller中的个别方法需要只返回数据时,只需要@Responsebody可以直接作用在方法上。

@Controller
public class HelloController {
 
    @Autowired
    private GirlProperties girlProperties;
 
    @GetMapping(value = "/hello")
    @ResponseBody
    public String say(){
       
        return "Hello Word";
    }
}

        @ResponseBody注解是将返回的数据结构转换为 Json 格式。所以@RestController可以看作是@Controller和@ResponseBody的结合体

        下面两串代码完全等价:

@ResponseBody
@Controller
public class helloController {
    @RequestMapping("/boot/hello")
    public String hello(){
        return "hello world";
    }
}
@RestController
public class helloController {
    @RequestMapping("/boot/hello")
    public String hello(){
        return "hello world";
    }
}

猜你喜欢

转载自blog.csdn.net/m0_46979453/article/details/121437324