微服务开发系列 第n篇:自定义校验注解 |
您所在的位置:网站首页 › spring服务降级 › 微服务开发系列 第n篇:自定义校验注解 |
总概
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 |