微服务开发系列 第n篇:自定义校验注解

您所在的位置:网站首页 spring服务降级 微服务开发系列 第n篇:自定义校验注解

微服务开发系列 第n篇:自定义校验注解

2023-04-30 18:11| 来源: 网络整理| 查看: 265

总概 A、技术栈 开发语言:Java 1.8 数据库:MySQL、Redis、MongoDB、Elasticsearch 微服务框架:Spring Cloud Alibaba 微服务网关:Spring Cloud Gateway 服务注册和配置中心:Nacos 分布式事务:Seata 链路追踪框架:Sleuth 服务降级与熔断:Sentinel ORM框架:MyBatis-Plus 分布式任务调度平台:XXL-JOB 消息中间件:RocketMQ 分布式锁:Redisson 权限:OAuth2 DevOps:Jenkins、Docker、K8S B、源码地址

alanchenyan/ac-mall2-cloud

C、本节实现目标 实现【手机号码】自定义校验注解 实现【证件号码】自定义校验注解 D、系列 微服务开发系列 第一篇:项目搭建 微服务开发系列 第二篇:Nacos 微服务开发系列 第三篇:OpenFeign 微服务开发系列 第四篇:分页查询 微服务开发系列 第五篇:Redis 微服务开发系列 第六篇:Redisson 微服务开发系列 第七篇:RocketMQ 微服务开发系列 第八篇:Elasticsearch 一、Spring中的校验注解

在Spring的使用过程中,有一些现成的注解可以使用

@AssertFalse:该值必须为False @AssertTrue:该值必须为True @DecimalMax(value,inclusive):被注释的元素必须是一个数字,其值必须小于等于指定的最大值 ,inclusive表示是否包含该值 @DecimalMin(value,inclusive):被注释的元素必须是一个数字,其值必须大于等于指定的最小值 ,inclusive表示是否包含该值 @Digits:限制必须为一个小数,且整数部分的位数不能超过integer,小数部分的位数不能超过fraction @Email:该值必须为邮箱格式 @Future:被注释的元素必须是一个将来的日期 @FutureOrPresent:被注释的元素必须是一个现在或将来的日期 @Max(value):被注释的元素必须是一个数字,其值必须小于等于指定的最大值 @Min(value):被注释的元素必须是一个数字,其值必须大于等于指定的最小值 @Negative:该值必须小于0 @NegativeOrZero:该值必须小于等于0 @NotBlank:该值不为空字符串,例如“ ” @NotEmpty:该值不为空字符串,例如”“ @NotNull:该值不为Null @Null:该值必须为Null @Past:被注释的元素必须是一个过去的日期 @PastOrPresent:被注释的元素必须是一个过去或现在的日期 @Pattern(regexp):匹配正则 @Positive:该值必须大于0 @PositiveOrZero:该值必须大于等于0 @Size(min,max):数组大小必须在[min,max]这个区间 二、实现自定义注解

自定义注解实现代码放在mall-core里,理由是:自定义注解代码实现后基本上是不会再修改调整的,放在mall-core里可以增强mall-core模块的功能,mall-core可以被任何项目引用去重复使用。即使以后要新增新的自定义注解,继续往mall-core里增加即可,mall-core只是被定义为相对稳定的模块,而不是不能被修改增强。

而mall-common是公共的模块,只是为了将各个服务都需要用到的类、工具提取出来,是可能会经常被修改的,因此没有将自定义注解实现代码放到mall-common里。

项目结构截图 2.1 【手机号码】自定义注解类 import javax.validation.Constraint; import javax.validation.Payload; import java.lang.annotation.*; /** * @author Alan Chen * @description 手机号码校验注解 * @date 2023/04/27 */ @Target(ElementType.FIELD) @Retention(RetentionPolicy.RUNTIME) @Documented @Constraint(validatedBy = {MobileValidator.class}) public @interface Mobile { boolean required() default true; String message() default "参数不正确"; String regExp() default MobileRegExp.MOBILE_REG_EXP; Class[] groups() default {}; Class


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3