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

麟游做网站百度推广介绍

麟游做网站,百度推广介绍,游戏科技网站,一个可以做行程的网站文章目录 概念基本概念常用校验注解 前置内容整合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.ds6.com.cn/news/25604.html

相关文章:

  • 怎样做月嫂网站百度搜索引擎优化的推广计划
  • 成都手机网站建设信息推广
  • wordpress建视频网站天津债务优化公司
  • 盐城网站建设优化建站球队积分排名
  • aardio 网站开发网站是否含有seo收录功能
  • 网站单页做301业务多平台怎么样
  • 龙华做网站多少钱网络营销有哪些例子
  • 有哪些网站交互效果做的好的国外搜索引擎大全不屏蔽
  • 网站建设hairongsoft今天头条新闻100条
  • 大型彩灯制作公司黄石市seo关键词优化怎么做
  • 建筑公司网站应该则么做免费建立网站
  • 仪征网站建设公司电脑培训班在哪里有最近的
  • 蔬菜水果网站建设热搜榜排名今日
  • 石家庄企业做网站武汉网站开发公司seo
  • 筑巢网站推广怎么样电商平台排名
  • 做网站需要什么条件做一个网站需要什么
  • 有个网站发任务 用手机可以做搜索引擎优化排名
  • 邯郸网站建设咨询安联网络无锡营销型网站建站
  • 搭建品牌电商网站怎么做网站制作公司哪家好
  • 网站目录设计百度app关键词优化
  • 网站欢迎页怎么做如何建网站教程
  • 做网站什么好百度官方认证
  • 家政服务 技术支持 东莞网站建设线上推广有哪些渠道
  • wordpress菜单样式网络seo
  • 中国建设银行官方网站纪念钞预约怎样打百度人工客服热线
  • 网站开发培训训郑州网络推广大包
  • 百度网站引流怎么做网络营销的目的和意义
  • 路易 wordpressseo网站优化培训
  • 怎么做网站上翻译泰剧seo引擎优化服务
  • 免费咨询妇科医生 在线南昌seo专业团队