参考声明:https://www.cnblogs.com/melodyjerry/p/14357630.html

参考声明:https://www.cnblogs.com/flower-dance/p/14267042.html

@RestController

  • @RestController注解,相当于@ResponseBody@Controller
  • Spring 4.0引入了@RestController,这是一个控制器的专用版本,它是一个方便的注释。

通过使用@RestController批注对控制器类进行注释,您不再需要将@ResponseBody添加到所有请求映射方法中。@ResponseBody注释默认处于活动状态。

说明它同时拥有这2注解的功能,@Controller注解表示后,该类将会被spring管理,@ResponseBody注解标识后,响应数据可以是文本或者JSON数据类型。所以这里我们return map的时候,可以直接输出JSON数据当然@RestController注解属于springmvc的,并不属于springboot的。

为什么要有这个注解?

  为什么在有了@Controller注解的同时,还要有@RestController呢?

  先说一下之前我们是则么做的,在使用@Controller的时候

  我们的Controller中的方法会用于返回页面视图的,当然这是前后端不分离的情况,我们要返回JSON数据,是要在方法上面加上@ResponseBody的

  但是如果接口多了,那么每个方法上都加,就会变得比较冗余,并且现在都是前后端分离的项目,前端有自己的路由,并不需要后端控制,所以一般所有的接口都是通过JSON数据交互的,所以采用RestController

Demo

要在我们的示例中使用@RestController,我们需要做的就是将@Controller修改为@RestController并从每个方法中删除@ResponseBody

结果类似代码应如下所示:

@RestController /* @Controller + @ResponseBody */
@RequestMapping("/account")
public class AccountController {
    
    //注入Service服务对象
    @Autowired
    private AccountService accountService;
 
    //获取account列表
    @GetMapping("/list")
    public ResultVO getAccountLists(@RequestBody(required = false) StandardDTO<AccountDTO> dto) {
        return ResultVO.ok(accountService.getAccountLists(dto));
    }
}

我们不再需要把@ResponseBody添加到请求映射方法中。

  • 更改后,再次在服务器上运行应用程序会产生与以前相同的输出。

小结

使用@RestController非常简单,这是

  • Spring 4.0开始创建MVC RESTful Web服务
  • 或者,基于SpringBoot 2.x首选方法。

原文地址:http://www.cnblogs.com/javaxubo/p/16862804.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性