All Downloads are FREE. Search and download functionalities are using the official Maven repository.

top.cutexingluo.tools.common.valid.str.StrStatus Maven / Gradle / Ivy

The newest version!
package top.cutexingluo.tools.common.valid.str;

import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.*;

/**
 * String 验证器
 *
 * 

需要导入 spring-boot-starter-validation 包

* *
    * 执行顺序 *
  • 是否notNull,未设置则 null 会通过,等同@NotNull
  • *
  • 是否 notBlankIfPresent 未设置则 "" 会通过,
    * 1.如果和上一条一起开启等同@NotBlank;
    * 2.如果上一条不开启这条开启,则 null 通过 "" 不通过, 适用于很多框架的update *
  • 先进行长度范围匹配 lenLimit
  • *
  • 再进行字符串精确匹配 anyStr
  • *
  • 字符串精确匹配不匹配 则进行字符串正则匹配 anyReg
  • *
  • 都不匹配则不通过
  • *
* * @author XingTian * @version 1.0.0 * @date 2023/7/19 16:15 */ @Documented @Inherited @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.FIELD, ElementType.PARAMETER}) @Constraint(validatedBy = {StrStatusValidator.class}) public @interface StrStatus { /** * 1.是否非空 null *

也可以使用 @NotNull 注解

*

不设置这个,如果为null则会通过

* * @return boolean */ boolean notNull() default false; /** * 2.是否不为空字符串"" *

不设置这个,如果为 "" 则会通过

* * @return boolean */ boolean notBlankIfPresent() default false; /** * 3.是否限制长度 * * @return boolean */ boolean lenLimit() default false; /** * lenLimit开启
* 3.最小长度 * * @return int */ int minLength() default 0; /** * lenLimit开启
* 3.最大长度 * * @return int */ int maxLength() default Integer.MAX_VALUE; /** * 4.只要目标满足任意字符串即可通过 * * @return {@link String[]} */ String[] anyStr() default {}; /** * 5.只要目标满足任意正则表达式即可通过 * * @return {@link String[]} */ String[] anyReg() default {}; /** * 不满足返回的消息 * * @return {@link String} */ String message() default "The transfer data is in the wrong format"; /** * 分组 * * @return {@link Class}<{@link ?}>{@link []} */ Class[] groups() default {}; Class[] payload() default {}; }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy