@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,JSON,ResponseBody,Controller,注解,方法 From: https://www.cnblogs.com/javaxubo/p/16862804.html使用
@RestController
非常简单,这是
- 从
Spring 4.0
开始创建MVC RESTful Web服务
,- 或者,基于
SpringBoot 2.x
的首选方法。