Java中spring boot validation自定義注解使用方式
更新時間:2024年08月05日 16:55:16 作者:妍老大
這篇文章主要介紹了Java中spring boot validation自定義注解使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
spring boot validation自定義注解
創(chuàng)建一個注解

@Target({ElementType.FIELD})//需要寫注解的三三個要素
@Retention(RUNTIME)
@Documented
@Constraint(validatedBy = {IsSystemYesNoVaildation.class})//綁定 在這里會報錯 你需要去實現(xiàn)
public @interface IsSystemYesNo {
String message() default "數(shù)據(jù)字典:【系統(tǒng)是否】-參數(shù)不合法";
//要添加下面這兩個
Class<?>[] groups() default { };
Class<? extends Payload>[] payload() default {};
}

public class IsSystemYesNoVaildation implements
//入?yún)? 類型
ConstraintValidator<IsSystemYesNo,String> {//實現(xiàn)
@Override
public boolean isValid(String value, ConstraintValidatorContext context) {
//把video傳進來 自定義注解就寫好了
return SystemYesNo.isCode(value);
}
}
最后這里是使用注解方法

spring boot Validation校驗注解參考表
| 校驗注解 | 注解的元素類型 | 描述 |
| @AssertFalse | Boolean、boolean | 被注解的元素值必須為 false |
| @AssertTrue | Boolean、boolean | 被注解的元素值必須為 true |
| @DecimalMax | BigDecimal、BigInteger、CharSequence、byte、short、int、long以及它們各自的包裝類 | 被注解的元素值小于等于@DecimalMax注解中的value 值 |
| @DecimalMin | 被注解的元素值大于等于@DecimalMin注解 中的value 值 | |
| @Max | BigDecimal、BigInteger、byte、short、int、long以及它們各自的包裝類 | 被注解的元素值小于等于@Max注解中的value 值 |
| @Min | 被注解的元素值大于等于@Min注解 中的value 值 | |
| @Digits | BigDecimal、BigInteger、CharSequence、byte、short、int、long以及它們各自的包裝類 | 被注解的元素必須是一個數(shù)字,其值必須在可接受的范圍內(nèi)(整數(shù)位數(shù)和小數(shù)位數(shù)在指定范圍內(nèi) |
| CharSequence | 被注解的元素必須是Email格式 | |
| @Future | Java.util.Date、java.util.Calendar以及java.time包下的時間類 | 被注解的元素值必須是一個未來的日期 |
| @Past | 被注解的元素值必須是一個過去的日期 | |
| @PastOrPresent | 被注解的元素值必須是一個過去的日期或者當前日期 | |
| @FutureOrPresent | 被注解的元素值必須是一個未來的日期或者當前日期 | |
| @Negative | BigDecimal、BigInteger、byte、short、int、long以及它們各自的包裝類 | 被注解的元素必須是負數(shù) |
| @NegativeOrZero | 被注解的元素必須是負數(shù)或0 | |
| @Positive | 被注解的元素必須是正數(shù) | |
| @PositiveOrZero | 被注解的元素必須是或0 | |
| @NotBlank | CharSequence | 被注解的元素必須部位null并且至少有一個非空白的字符 |
| @NotEmpty | CharSequence、Collection、Map、Array | 被注解的字符串不為null或空字符串,被注解的集合或數(shù)組不為空。和@NotBlank注解相比,一個空格字符串在@NotBlank驗證不通過,但在NotEmpty中通過驗證 |
| @NotNull | 任意類型 | 被注解的元素不為null |
| @Null | 被注解的元素為null | |
| @Pattern | CharSequence | 被注解的 元素必須符合指定的正則表達式 |
| @Size | CharSequence、Collection、Map、Array | 被注解的字符串長度、集合或數(shù)組的大小必須在指定范圍內(nèi) |
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
java rocketmq--消息的產(chǎn)生(普通消息)
這篇文章主要介紹了java rocketmq--消息的產(chǎn)生(普通消息),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,,需要的朋友可以參考下2019-06-06
Java?實戰(zhàn)范例之校園二手市場系統(tǒng)的實現(xiàn)
讀萬卷書不如行萬里路,只學書上的理論是遠遠不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+SSM+mysql+maven+tomcat實現(xiàn)一個校園二手市場系統(tǒng),大家可以在過程中查缺補漏,提升水平2021-11-11
SpringBoot+Redis實現(xiàn)數(shù)據(jù)字典的方法
這篇文章主要介紹了SpringBoot+Redis實現(xiàn)數(shù)據(jù)字典的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-10-10
Java SE使用數(shù)組實現(xiàn)高速數(shù)字轉換功能
隨著大數(shù)據(jù)時代的到來,數(shù)字轉換功能變得越來越重要,在Java開發(fā)中,數(shù)字轉換功能也是經(jīng)常用到的,下面我們就來學習一下如何使用Java SE數(shù)組實現(xiàn)高速的數(shù)字轉換功能吧2023-11-11
Java版超大整數(shù)階乘算法代碼詳解-10,0000級
這篇文章主要介紹了Java版超大整數(shù)階乘算法代碼詳解-10,0000級,具有一定借鑒價值,需要的朋友可以參考下2018-01-01
一天時間用Java寫了個飛機大戰(zhàn)游戲,朋友直呼高手
前兩天我發(fā)現(xiàn)論壇有兩篇飛機大戰(zhàn)的文章異常火爆,但都是python寫的,竟然不是我大Java,說實話作為老java選手,我心里是有那么一些失落的,今天特地整理了這篇文章,需要的朋友可以參考下2021-05-05

