@RestController VS @Controller

1. Controller 返回一个页面

单独使用 @Controller 而不加 @ResponseBody的话,一般使用在要返回一个视图的情况,这种情况属于比较传统的 Spring MVC 应用,对应于前后端不分离的情况。

9709135-aca7c677bfea06ba.png
SpringMVC 传统工作流程

2. @RestController 返回 JSON 或 XML 形式数据

@RestController只返回对象,对象数据直接以 JSON 或 XML 形式写入 HTTP 响应中,这种情况属于 Resttful Web 服务,也是目前日常开发所接触的最常用的情况(前后端分离)。

9709135-63d03c9781fb872f.png
SpringMVC+RestController

3. @Controller +@ResponseBody 返回JSON 或 XML 形式数据

在 Spring4 之前开发 RESTful Web 服务的话,需要使用 @Controller 并结合 @ResponseBody 注解,也就是说 @Controller + @ResponseBody = @RestController(Spring4 之后新加的注解)。

@ResponseBody 注解的作用,是将 Controller 方法返回的对象,通过适当的转换器转换为指定的格式之后,写入到 HTTP 响应对象的 body 中,通常用来返回 JSON 或者 XML 数据,返回 JSON 数据的情况比较多。

9709135-e8059fbfd4719a94.png
Spring3.x MVC RESTful Web 服务工作流程
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值