springboot验证参数校验的实例分析

介绍

这篇文章主要介绍”springboot验证参数校验的实例分析”,在日常操作中,相信很多人在springboot验证参数校验的实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答“springboot验证参数校验的实例分析”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

对于任何一个应用而言在客户端做的数据有效性验证都不是安全有效的,这时候就要求我们在开发的时候在服务端也对数据的有效性进行验证。弹簧引导自身对数据在服务端的校验有一个比较好的支持,它能将我们提交到服务端的数据按照我们事先的约定进行数据有效性验证。

<强> 1 pom依赖

& lt; dependency>,& lt; groupId> org.springframework.boot,& lt; artifactId> spring-boot-starter-validation & lt;/dependency>

<强> 2校验使用实例

配置要验证的请求实体

公开课用户{@Null大敌;私人长id;,@NotBlank私人字符串名称;字符串,私人电子邮件;,//省略getter和setter}

控制器方法配置

@PostMapping (“/addUser")公共字符串addUser (@Valid @RequestBody用户用户){,…}

校验失败统一处理

校验失败时将抛出MethodArgumentNotValidException异常

/* * *全局异常处理* * @author liusq * */@RestControllerAdvicepublic类GlobalExceptionHandler{,私有静态最终日志记录器=LoggerFactory.getLogger (GlobalExceptionHandler.class);,@SuppressWarnings (“rawtypes"), @ExceptionHandler (value=https://www.yisu.com/zixun/Exception.class)公共ResponseEntity处理(异常e){如果(e instanceof MethodArgumentNotValidException) {BindingResult BindingResult=((MethodArgumentNotValidException) e) .getBindingResult ();如果(bindingResult.hasErrors () & & bindingResult.hasFieldErrors ()) {FieldError FieldError=bindingResult.getFieldError ();BodyValidStatus BodyValidStatus=new BodyValidStatus.Builder () .code (“0009”) .message (fieldError.getDefaultMessage ()) .field (fieldError.getField ()) .build ();LOGGER.warn (bodyValidStatus.getMessage () + e);返回新ResponseEntity <> (bodyValidStatus HttpStatus.OK);其他}{bodyStatus=DataUtil.bodyStatus (“0009”);其他}}{bodyStatus=DataUtil.bodyStatus (Constants.ERROR_CODE);}LOGGER.error (bodyStatus.getMessage () + e);返回新ResponseEntity <> (bodyStatus HttpStatus.OK);公共类BodyValidStatus}}{//错误代码私人字符串代码;//错误代码解释私人字符串消息;//错误字段私人字符串字段;公共BodyValidStatus(){}公共BodyValidStatus(消息代码字符串,字符串,字符串字段){。代码=代码;这一点。消息=消息;这一点。字段=字段;}私人BodyValidStatus (Builder构建器){setCode (builder.code);setMessage (builder.message);setField (builder.field);}公共字符串getCode(){返回代码;}公共空setCode(字符串代码){。代码=代码;公共字符串getMessage(){}返回消息;}公共空setMessage(字符串消息){。消息=消息;}公共字符串getField(){返回字段;}公共空setField(字符串字段){。字段=字段;toString () {} @Override公共字符串返回ToStringBuilder.reflectionToString(这个);}公共静态最终类构建器{私人字符串代码;私人字符串消息;私人字符串字段;公共建筑(){}公共代码生成器(字符串val){代码=val;返回;消息(字符串val){}公共建筑信息=val;返回;}公共建筑领域(String val){字段=val;返回;}公共BodyValidStatus建立(){返回新BodyValidStatus(这个);null

springboot验证参数校验的实例分析