云南省植保植检站网址,深圳营销网站制作,wordpress 注册 密码,网站建设公司市场策划方案文章目录 一、背景二、使用三、举例 一、背景
在项目开发过程中#xff0c;经常会对一些字段进行校验#xff0c;比如字段的非空校验、字段的长度校验等#xff0c;如果在每个需要的地方写一堆if else 会让你的代码变的冗余笨重且相对不好维护#xff0c;如何更加规范和优… 文章目录 一、背景二、使用三、举例 一、背景
在项目开发过程中经常会对一些字段进行校验比如字段的非空校验、字段的长度校验等如果在每个需要的地方写一堆if else 会让你的代码变的冗余笨重且相对不好维护如何更加规范和优雅的校验呢
Spring Boot中可以使用Validation Api和Hibernate Validator实现接口入参自动检验。
二、使用
1、如果成员变量是其他对象实体该变量必须加 Valid否则嵌套中的验证不生效
2、添加依赖Spring Boot项目工程依赖因为在spring-boot-starter-web中已经包含了validation-api和hibernate-validator所以无需再额外引用
parentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.4.5/versionrelativePath/
/parentdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencyMaven项目工程依赖maven dependencygroupIdjakarta.validation/groupIdartifactIdjakarta.validation-api/artifactId/dependency3、首先需要了解javax.validation下的三个非空约束注解的作用位置NotNull、NotEmpty、NotBlank
约束说明NotNull作用在Integer上包括其它基础类在Integer属性上加上NotNull约束后该属性不能为null没有size的约束NotNull作用在Collection、Map或者集合对象上该集合对象不能为null但可以是空集即size0一般在集合对象上用NotEmpty约束NotBlank只作用在String上在String属性上加上NotBlank约束后该属性不能为null且trim()之后size0NotEmptyNotEmpty 作用在集合类上面在Collection、Map、数组上加上NotEmpty约束后该集合对象是不能为null的并且不能为空集即size0
三、举例
Controller类
public class CustomerSyncController {/*** 客户同步*/ApiOperation(value 客户同步)PostMapping(value /customer/sync)public ResultBoolean syncCustomerInfo(RequestBody Valid CustomerInfoVo paramVos) {try {if (!ObjectUtils.isEmpty(paramVos)) {customerInfoService.syncCustomerInfo(paramVos);}} catch (Exception e) {e.printStackTrace();log.error([syncCustomerInfo] request errorparamVos:{},异常{}, paramVos, e.getMessage());return Result.error(BasicCodeMsg.SERVER_ERROR);}return Result.success(Boolean.TRUE);}
}实体类
NoArgsConstructor
Data
public class CustomerInfoVo implements Serializable {private static final long serialVersionUID 1L;ApiModelProperty(value 客户id)NotBlank(message 客户ID不能为空)private String customerId;ApiModelProperty(value 客户姓名)NotBlank(message 客户姓名不能为空)private String name;ApiModelProperty(value 证件类型)NotNull(message 证件类型不能为空)private Integer certificateType;ApiModelProperty(value 证件号)NotBlank(message 证件号不能为空)private String certificate;}用postman测试即可。