SpringBoot2.x系列教程(二十)自定义参数校验注解
教程 系列 参数 自定义 注解 校验 二十 SpringBoot2
2023-09-27 14:28:49 时间
在SpringBoot的使用过程中,默认使用hibernate-validator作为参数校验的框架,但某些业务场景或校验比较复杂,通过默认提供的注解已经无法满足。此时,除了使用正则表达式来进行校验也可以使用自定义的注解。
比如,对于手机号的简单校验如下:
@Pattern(regexp = "^1(3|4|5|7|8)\\d{9}$", message = "手机号码格式错误")
@NotBlank(message = "手机号码不能为空")
private String phone;
虽然能够完成工作,但是如果多出都出现类似的功能或更复杂的功能,每次都写如此多内容,显得有些臃肿。那么,我们这篇文章就来展示如何通过自定义注解来完成相同的功能。
自定义注解
我们知道hibernate validation实现JSR的标准,同时提供了一些API和扩展性的规范。要实现自定义注解,可以通过实现ConstraintValidator接口来完成。
下面看具体示例,首先定义手机号校验注解@Phone。
/**
* 手机号校验
* @author zzs
*/
@Target({ ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = PhoneValidator.class)
public @interface Phone {
/**
* 错误提示
*/
String message() default "手机号格式错误";
/**
* 分组校验
*/
Class<?>[] groups()
相关文章
- 【华为云技术分享】STM32L476移植华为LiteOS系列教程(二)---开发前准备
- 【ARM-Linux开发】Rico Board DIY系列实验教程 Day 2——搭建Boa服务器
- 苹果手机投屏器 及如何使用设置连接电脑投屏教程
- CleanMyMac X断网激活码免费共享教程免费分享
- ABBYY FineReader OCR图文识别软件如何快速将纸质文档转为电子档教程
- Cobalt Strike系列教程第四章:文件/进程管理与键盘记录
- Linux下yum安装nginx教程
- 超详细的 pytest 教程 (三) 之用例标记和测试执行篇
- SSL证书的类型区别和配置教程
- git bash的安装和配置教程
- 【Mac 教程系列】如何在 Mac 中用终端命令行方式打开 Sublime Text ?
- Git 系列教程(2)- Git 安装
- Java8 Lambda表达式教程
- PS曲线-进阶教程(深入理解PS曲线)
- Spring Boot2 系列教程(三十三)整合 Spring Security
- Spring Boot2 系列教程(十五)定义系统启动任务的两种方式
- 最详细的python安装教程,小白建议收藏
- C++教程系列之-01-C++概述与NOIP案例
- 2021年最新最全Flink系列教程_Flink原理初探和流批一体API(二.五)
- Android NIO 系列教程(八) --NIO简易聊天室
- SpringBoot2.x系列教程(六十一)Spring Boot集成FastDFS实现文件上传
- SpringBoot2.x系列教程(五十五)Mybatis反向生成Java代码
- SpringBoot2.x系列教程(四十一)SpringBoot中通过SpringContextUtils工具类获取Bean
- SpringBoot2.x系列教程(三十四)Thymeleaf自动配置源码解析
- SpringBoot2.x系列教程(二十九)freemarker自动配置源码解析
- SpringBoot2.x系列教程(十)Json之基础使用详解
- 『React Navigation 3x系列教程』