当前位置: 首页 > news >正文

2022最近比较火的营销事件成都seo

2022最近比较火的营销事件,成都seo,wordpress支持视频播放器插件下载,建设婚纱摄影网站的重要性文章目录 概念基本概念常用校验注解 前置内容整合Hibernate Validator快速入门优雅处理参数校验异常其余注解校验自定义校验注解 参考来源 概念 基本概念 Hibernate Validator 是一个参数校验框架,可以非常方便地帮助我们校验应用程序的入参,实现了参数…

文章目录

  • 概念
    • 基本概念
    • 常用校验注解
  • 前置内容
  • 整合Hibernate Validator
    • 快速入门
    • 优雅处理参数校验异常
    • 其余注解校验
    • 自定义校验注解
  • 参考来源

概念

基本概念

Hibernate Validator 是一个参数校验框架,可以非常方便地帮助我们校验应用程序的入参,实现了参数校验与业务开发的解耦

常用校验注解

  • @Validated
    通常作用于Controller的方法的对象参数上,标识该对象需要做参数校验
  • @Valid
    与@Validated注解功能类似,但它还可作用于要校验的对象参数的引用类型属性上,从而实现嵌套校验(即对要校验的对象参数的引用类型属性的属性做参数校验)
  • @NotNull
    非空校验,但校验字符串时空字符串可验证通过
  • @NotEmpty
    非空校验,但校验字符串时纯空格字符串可验证通过
  • @NotBlank
    非空校验,校验字符串时纯空格字符串不可验证通过
  • @Min
    整数最小值校验
  • @Max
    整数最大值校验
  • @Size
    字符串、集合、数组长度校验
  • @Email
    邮箱格式校验
  • @Pattern
    使用正则表达式校验参数

前置内容

本教程基于Spring Boot快速整合Spring MVC和Mybatis-Plus,实现基本的增删改查功能这篇文章,请读者先阅读这篇文章

整合Hibernate Validator

快速入门

  • 引入maven依赖
        <!--   Hibernate Validator参数校验     --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId></dependency>
  • 在User类的nickname属性加上@NotBlank
    @NotBlank(message = "昵称不能为空")private String nickname;
  • 添加用户接口使用@valid注解
    @PostMapping("/addUser")@ApiOperation(value = "添加用户")public boolean addUser(@RequestBody @Valid User user) {return userService.save(user);}
  • 重启并使用Knife4j测试添加用户接口在这里插入图片描述在这里插入图片描述

如下图,控制台报了MethodArgumentNotValidException异常,并且响应提示也不友好,接下来我们需要全局处理一下该异常,让前端的提示更加友好

优雅处理参数校验异常

  • 创建参数校验异常提示类
@Data
public class ValidErrorInfo {private String field;private String errMsg;
}
  • 创建全局异常处理器
@RestControllerAdvice
@Slf4j
public class GlobalExceptionHandler {/*** 参数校验异常处理** @param e* @return*/@ExceptionHandler(MethodArgumentNotValidException.class)  // 指定要处理的异常public List<ValidErrorInfo> handleMethodArgumentNotValidException(MethodArgumentNotValidException e) {// 打印异常信息log.error("参数校验异常", e);// 封装异常结果List<ValidErrorInfo> errs = new ArrayList<>();BindingResult bindingResult = e.getBindingResult();List<FieldError> fieldErrors = bindingResult.getFieldErrors();fieldErrors.forEach(err -> {ValidErrorInfo validErrorInfo = new ValidErrorInfo();validErrorInfo.setField(err.getField());validErrorInfo.setErrMsg(err.getDefaultMessage());errs.add(validErrorInfo);});return errs;}}
  • 重启并使用Knife4j测试添加用户接口

响应结果输出了友好提示
在这里插入图片描述

其余注解校验

  • 在User类的pwd属性加上@Size校验密码长度
    @Size(min = 8, max = 16)private String pwd;
  • 在User类的email属性加上@Email校验邮箱格式
    @Emailprivate String email;
  • 在User类的phone属性加上@Pattern校验手机号格式
    @Pattern(regexp = "1([345789])\\d{9}")private String phone;
  • 重启项目测试
    在这里插入图片描述
  • 其余注解请自行测试

自定义校验注解

如果现有的校验注解不能满足我们的需求,我们可以自定义校验注解,比如我们自定义一个性别校验注解

  • 创建一个性别校验器
public class GenderValidValidator implements ConstraintValidator<GenderValid, String> {@Overridepublic boolean isValid(String value, ConstraintValidatorContext context) {List<String> genders = Arrays.asList("男", "女");return genders.contains(value);}
}
  • 创建一个校验性别的校验注解
@Documented
@Constraint(validatedBy = {GenderValidValidator.class})  // 指定校验器
@Target({METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE})
@Retention(RUNTIME)
public @interface GenderValid {String message() default "性别录入必须为:男/女";Class<?>[] groups() default {};Class<? extends Payload>[] payload() default {};
}
  • 在User类的gender属性加上 @GenderValid校验性别
  • 重启项目测试
    在这里插入图片描述

参考来源

  • spring 官网
  • hibernate-validator
http://www.yayakq.cn/news/866790/

相关文章:

  • 网站建设人文类阿里云做网站教程
  • 国外的一个大学生做的匿名社交网站网站建设需求调研
  • 奥运网站模板标智客logo在线设计生成器免费
  • 个人网站建设的步骤赣州住房与城乡建设厅网站
  • 网站标题写什么作用是什么意思做网站做电脑版还是手机版好
  • 个人网站主页设计模板网站建设的一般过程包括哪些内容
  • 景德镇市建设局网站网站推广淘宝联盟怎么做
  • 更改网站备案负责人一起做业网站
  • 培训网站建设方案说明百度竞价sem入门教程
  • 太原网站建设公司哪家好网站有必要使用伪静态么
  • 房地产网站源码ztjs
  • 网站分成比例系统怎么做分析网站推广和优化的原因
  • 如何快速建设推广网站国外设计搜索网站
  • pc端兼手机端网站模板保亭住房和城乡建设局网站
  • 昆山网站建设详细方案响应式网站设计思路
  • 浙江省建设通网站做网站那种语言好
  • 医院网站和公众号建设方案中铁十六局集团门户登录
  • 可以做视频推广的网站苏州大学网站建设目标
  • 福永网站设计促销网站怎么做
  • 长沙做网站一般多少钱合适微信支付服务商平台
  • 用jsp做网站需要的知识百度的seo关键词优化怎么弄
  • 网站建设主机美食网页设计的制作过程
  • 自贡市住房和城乡建设局网站北京官网首页
  • 素材免费下载网站网站怎么在百度搜到
  • 网站建设设计 昆山加关键词的网站
  • 做商城网站需要什么资质用六类网站做电话可以吗
  • 旅游手机网站模板做摄影网站公司
  • 百度蜘蛛不爬取网站wordpress 影视模板
  • 食品网站建设的目的高级软件开发培训
  • 用html做的网站步骤浙江建设集团