@RestController注解

参考声明: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首选方法。
posted @ 2022-11-06 15:53  哩个啷个波  阅读(6079)  评论(0)    收藏  举报