等同于@Controller + @ResponseBody。
所以想要理解@RestController注解
就要先了解@Controller和@ResponseBody注解
在一个类上添加@Controller注解,表明了这个类是一个控制器类。
这里省略对Controller注解的说明了。
@ResponseBody表示方法的返回值直接以指定的格式写入Http response body中,而不是解析为跳转路径。
格式的转换是通过HttpMessageConverter中的方法实现的,因为它是一个接口,因此由其实现类完成转换。
如果要求方法返回的是json格式数据,而不是跳转页面,可以直接在类上标注@RestController,而不用在每个方法中标注@ResponseBody,简化了开发过程。
@Controller和@RestController的区别:
@Controller:
@RestController:
BuyerProductController
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
/** * 买家商品 * Created by 李柏霖 * 2020/10/17 20:11 */
package com.lbl.controller;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;
@RestController @RequestMapping("/buyer/product") public class BuyerProductController {
@GetMapping("/list") public void list(){
} } |