我们在开发java项目的时候,经常需要对参数进行一些必填项、格式、长度等进行校验,如果手写代码对参数校验,每个接口会需要很多低级的代码,这样会降低代码的可读性。那么我们能不能使用一种比较优雅的方式来实现,对请求中的参数进行校验呢?
knife4j的安装与使用可参考我的博客:SpringBoot使用knife4j进行在线接口调试
正文
ValidationApi框架就是用来解决参数校验中代码冗余问题,ValidationApi框架提供一http://www.cppcns.com些注解用来帮助我们对请求参数进行校验:
SpringBoot使用validation-api实现参数校验
注入依赖
javax.validation
validation-api
2.0.1.Final
org.apache.commons
commons-lang3
3.3.2
org.projectlombok
lombok
1.18.2
true
com.github.xiaoymin
knife4j-spring-boot-starter
2.0.4
UserPojoReq.java请求封装类
如果成员变量是其他对象实体,该变量必须加 @Valid,否则嵌套中的验证不生效
@Setter
@Getter
@ToString
@ApiMod
CouponTypeEnum.class :错误码枚举类
@Getter
public enum CouponTypeEnum {
PARAMETER_ERROR(1001, "请求参数有误!"),
UNKNOWN_ERROR(9999, "未知的错误!”);
/**
* 状态值
*/
private int couponType;
/**
* 状态描述
*/
private String couponTypeDesc;
CouponTypeEnum(int couponType, String couponTypeDesc){