在平时的开发过程中,经常会用到参数校验。如果直接在代码逻辑中写参数校验,代码有点冗余,使用起来不是很方便。看来代码逻辑复杂,重复代码太多。这里我们使用annotations方法进行参数校验。SpringBoot中常用的参数校验注解如下:@AssertFalse注解的元素必须是Boolean类型,值为false@AssertTrue注解的元素必须是Boolean类型,值为true@注解的元素byDecimalMax必须是一个数字,并且该值必须小于或等于给定值。@DecimalMin注解的元素必须是数字,且值必须大于等于给定值。@Digits注解的元素必须是数字,并且必须指定值的位数@Future注解的元素必须是未来的日期@Max注解的元素必须是数字,并且取值小于小于等于给定值@Min注解的元素必须是数字,且值小于等于给定值@Range注解的元素的值必须在指定范围内元素的值@NotNull注解的元素不能为null@NotBlank注解的元素的值有内容@Null注解的元素的值为null@Past注解的元素必须是某个值过去的日期@PastOrPresent注解的元素必须是过去或现在的日期@Pattern注解的元素必须满足给定的正则表达式@Size注解的元素必须是字符串、集合或数组,长度需要保证在给定的范围内,被注解的元素@Email必须满足Email格式1.在GitEgg-Platform项目的子项目gitegg-platform-b??oot中添加spring-boot-starter-validation依赖,因为自从SpringBoot2.3.X开始,spring-boot-starter-web不再默认引入验证框架。这里需要手动引入。pom.xml如下GitEgg-Platformcom.gitegg.platform1.0-SNAPSHOT4.0.0gitegg-platform-b??oot<名称>${project.artifactId}<版本>${project.parent.version}jarorg.springframework.bootspring-boot-starter-webtrueorg.springframework.bootspring-boot-starter-validationcom.gitegg.platformgitegg-platform-swagger<可选>真可选>/project>2,重新安装GitEgg-Platform项目,新建类SystemDTO.javapackagecom.gitegg.service.system.dto;importlombok.Data;importjavax.validation。constraints.*;@DatapublicclassSystemDTO{@NotNull@Min(value=10,message="id必须大于10")@Max(value=150,message="id必须小于150")privateLongid;@NotNull(message="名字不能为空")@Size(min=3,max=20,message="名字的长度必须在3-20之间")privateStringname;}3.增加参数验证在SystemController.java类Test接口包com.gitegg.service.system.controller;importcom.gitegg.platform.boot.common.base.Result;importcom.gitegg.platform.boot.common.exception.BusinessException;importcom。gitegg.service.system.dto.SystemDTO;导入com.gitegg.service.system.service.ISystemService;导入io.swagger.annotations.Api;导入io.swagger.annotations.ApiOperation;导入lombok.AllArgsConstructor;导入org.springframework.web.bind.annotation.*;importjavax.validation.Valid;@RestController@RequestMapping(value="system")@AllArgsConstructor@Api(tags="gitegg-system")publicclassSystemController{privatefinalISystemServicesystemService;@GetMapping(value="list")@ApiOperation(value="systemlist接口")publicObjectlist(){returnsystemService.list();}@GetMapping(value="page")@ApiOperation(value="系统页面接口")publicObjectpage(){returnsystemService.page();}@GetMapping(value="exception")@ApiOperation(value="自定义异常及返回测试接口")publicResultexception(){returnResult.data(systemService.exception());}@PostMapping(value="有效")@ApiOperation(value="参数验证测试接口")publicResultvalid(@Valid@RequestBodySystemDTOsystemDTO){returnResult.data(systemDTO);}}4、运行GitEggSystemApplication.java,打开浏览器访问:http://127.0.0.1:8001/doc.html,然后点击左侧的参数验证测试界面,使用Swagger2进行测试,可以查看验证结果5.这里的提示信息使用上一章提到的统一异常处理逻辑:){//获取异常字段和对应的异常信息StringBufferstringBuffer=newStringBuffer();methodArgumentNotValidException.getBindingResult().getFieldErrors().stream().map(t->t.getField()+t.getDefaultMessage()+";").forEach(e->stringBuffer.append(e));StringerrorMessage=stringBuffer.toString();结果result=Result.error(ResultCodeEnum.PARAM_VALID_ERROR,errorSystem+errorMessage);返回结果;}本文源码在https://gitee.com/wmz1930/GitEgg的chapter-08分支。