Controller层常用注解

1. @RestController

这是一个复合注解,在controller层加上此注解,定义返回的数据都是json格式

2. @RequestBody

1)前端向后端发送的是json数据,此注解可以将json主动封装成java bean,示例
public void save(@RequestBody Furn furn)
2)前端向后端发送的是format格式或者参数,可以不加此注解,会自动封装成java bean

3. @TableId

作用与bean的某一个属性上,用于指定该属性对应数据库里表的主键。
该注释有type属性,@TabledId(type = IdType.AUTO)的作用是定义一个bean属性在表里的主键、自增

4.@RequestMapping

使用此注解后,某方法使用GET和POST都可以访问到

5.@PathVariable

将请求的uri中的某一部分放到方法的输入参数中.

6.@RequestParam

url问号后面携带的参数http://localhost:9091/furnByPage?pageNum=1&pageSize=2
对应的controller是

    @RequestMapping("/furnByPage")
    public Result listFurnByPage(@RequestParam(defaultValue = "1") Integer pageNum,
                                 @RequestParam(defaultValue = "2") Integer pageSize) {
        Page<Furn> page = furnService.page(new Page<>(pageNum, pageSize));
        return Result.success(page);
    }
7.@Validated

后端校验注释。以下面代码为例,将json封装成bean的时候,会先进行规则校验(规则自己定义,可以使用hibernate-validator)

@PostMapping("/save")
    public Result save(@Validated @RequestBody Furn furn, Errors errors) {
        HashMap<String, Object> map = new HashMap<>();
        List<FieldError> fieldErrors = errors.getFieldErrors();
        for (FieldError fieldError: fieldErrors) {
            map.put(fieldError.getField(), fieldError.getDefaultMessage());
        }

        if (map.isEmpty()) {
            log.info("furn={}", furn);
            boolean save = furnService.save(furn);
            return Result.success();
        } else {
            return Result.error("400", "后端校验失败", map);
        }
    }

hibernate-validator可以在bean的不同属性上增加注解,进而增加校验规则,下面是例子

@Data
//@TableName("furn") // 如果bean和表名不一致,可以使用此注释
public class Furn {

    @TableId(type = IdType.AUTO)
    private Integer id;

    @NotEmpty(message = "请输入家具名")
    private String name;

    @NotEmpty(message = "请输入厂商名")
    private String maker;

    @NotNull(message = "请输入数字")
    @Range(min = 0, message = "价格不小于0")
    private Double price;

    @NotNull(message = "请输入数字")
    @Range(min = 0, message = "销量不小于0")
    private Integer sales;

    @NotNull(message = "请输入数字")
    @Range(min = 0, message = "库存不小于0")
    private Integer stock;

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值