Java中spring boot validation自定義注解使用方式
spring boot validation自定義注解
創(chuàng)建一個(gè)注解

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

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

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

