工作笔记--2--代码中关于lombok.Data的@Data和javax.validation@Valid注解

@Data示例代码

工作中看别人代码中的一个入参使用了@Data注解,因为没见过,稍微研究一下。

@Data
public class BusinessParam implements Serializable {

    private static final long serialVersionUID = 219950064613629903L;

    @NotBlank(message = "userSerial不能为空")
    private String userSerial;

    @NotNull(message = "userId不能为空")
    private Integer userId;

    @NotNull(message = "tradeType不能为空")
    private Integer tradeType;
 }
 

作用

@Data注解在基本类上时,可以简化java代码编写,为该类提供读写属性即getter和setter方法,还提供了equals(),hashCode(),toString()方法。可以简化代码结构。我们仍然可以在代码中写如下代码:

BusinessParam param= new BusinessParam();
param.setUserId(12);
param.getUserId();

使用

参考@不爱编程的设计师

@Valid示例代码

    @PostMapping("/qrcodepay")
    public PreCreateOrderRsp qrcodepay(BusinessParam businessParam, @Valid PreCreateReq preCreateReq, BindingResult errors) throws Exception {
        PreCreateOrderReq preCreateOrderReqAPI = new PreCreateOrderReq();
        BeanUtils.copyProperties(businessParam,preCreateOrderReqAPI);
        BeanUtils.copyProperties(preCreateReq,preCreateOrderReqAPI);
        return payApiService.qrcodePay(preCreateOrderReqAPI);
    }

作用

@Valid作用是参数校验,BindingResult是获取验证结果
配合使用:

    @PostMapping("/createUser2")
    public String createUser2(@Valid UserInfo userInfo, BindingResult bindingResult){
        if (bindingResult.hasErrors()){
            return bindingResult.getFieldError().getDefaultMessage();
        }
        userService.createUser(userInfo.getTel(),userInfo.getPassWord());
        return "OK";
    }

标注@Valid注解的javabean中的属性可以使用@notNull(message=“xxxxxx”)

关于spring中的BeanUtils.copyProperties(source,target)方法

BeanUtils.copyProperties(preCreateReq,preCreateOrderReqAPI);
将source中和target相同的属性赋值给target,可以简化代码中的getter和setter方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值