欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringValidation自定義注解及分組校驗功能詳解

 更新時間:2024年01月06日 10:02:07   作者:六花i  
這篇文章主要介紹了SpringValidation自定義注解及分組校驗功能,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧

1. 引入依賴

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-validation</artifactId>
   <version>3.2.0</version>
</dependency>

2. 自定義注解校驗

使用場景:已有的注解不能滿足所有的校驗需求,特殊的情況需要自定義校驗(自定義校驗注解)。 實現(xiàn)自定義注解可以通過模仿,SpringValidation提供的其他注解進行改寫。

舉例說明:

我有一個實體類,其中一個參數(shù)state需要接收到前端數(shù)據(jù)后進行校驗(要求該參數(shù)只能是 已發(fā)布 或者 草稿)。而SpringValidation提供的注解無法滿足我的需求,此時便需要自定義注解。

2.1 創(chuàng)建Validation類

注意:該類需要實現(xiàn) ConstraintValidator接口,并實現(xiàn) isValid( )方法。方法內(nèi)即是校驗規(guī)則, 我這里只是提供參考。請自行根據(jù)業(yè)務需求更改。
import jakarta.validation.ConstraintValidator;
import jakarta.validation.ConstraintValidatorContext;
/**
 * ConstraintValidator<State, String>前一個代表需要校驗的注解,后一個代表校驗類型
 */
public class Validation implements ConstraintValidator<State, String> {
    /**
     *
     * @param value 將來要校驗的數(shù)據(jù)
     * @param constraintValidatorContext
     * @return
     */
    @Override
    public boolean isValid(String value, ConstraintValidatorContext constraintValidatorContext) {
        //校驗規(guī)則
        if (value == null) {
            return false;
        }
        if (value.equals("已發(fā)布") || value.equals("草稿")) {
            return true;
        }
        return false;
    }
}

2.2 創(chuàng)建注解對象

注解名稱,請根據(jù)自己業(yè)務需求更改。
import jakarta.validation.Constraint;
import jakarta.validation.Payload;
import java.lang.annotation.*;
@Documented //元注解,代表可在文檔顯示
@Constraint(
        validatedBy = {Validation.class} //指定提供校驗規(guī)則的類,該類需要自己指定
)
//元注解,代表注解適用的對象(方法、字段、注解、類、屬性)
@Target({ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE, ElementType.CONSTRUCTOR, ElementType.PARAMETER, ElementType.TYPE_USE})
@Retention(RetentionPolicy.RUNTIME) //元注解,代表注解的作用范圍
public @interface State {
    //報錯提示
    String message() default "state參數(shù)只能是已發(fā)布或者草稿";
    Class<?>[] groups() default {};
    Class<? extends Payload>[] payload() default {};
}

2.3 使用注解

找到對應的實體類,在需要校驗的參數(shù)上添加該注解即可。例如我這里需要對state進行校驗。

3. 分組校驗

分組校驗是指把校驗項進行歸類分組,在完成不同的功能的時候,校驗指定組中的校驗項。 分組校驗常用于增加和修改操作時對數(shù)據(jù)的校驗。

分組校驗的 流程:

1.定義分組 

2.定義校驗項時指定歸屬的分組

3.校驗時指定要校驗的分組

3.1 實體類內(nèi)部定義接口

3.2 在參數(shù)上指定分組

3.3 給@Validated注解賦值

注意: 如果在方法上對參數(shù)進行校驗,需要在類上添加@Validated注解。如果在實體類中對成員遍歷進行校驗,需要在使用到這個類的接口方法中添加@Validated注解。

到此這篇關于SpringValidation自定義注解以及分組校驗的文章就介紹到這了,更多相關SpringValidation自定義注解內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 解決SpringBoot項目啟動成功但接口訪問404的問題

    解決SpringBoot項目啟動成功但接口訪問404的問題

    這篇文章主要介紹了如何解決SpringBoot項目啟動成功但接口訪問404的問題,具有很好的參考價值,希望對大家有所幫助,接下來就跟著小編一起來看看吧
    2023-07-07
  • springboot中如何引入AOP切面編程

    springboot中如何引入AOP切面編程

    這篇文章主要介紹了springboot中如何引入AOP切面編程問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Java線程優(yōu)先級變量及功能

    Java線程優(yōu)先級變量及功能

    這篇文章主要介紹了Java線程優(yōu)先級變量及功能,關于優(yōu)先級的問可能有兩個或更多線程被分配了相同的優(yōu)先級,那么它們的執(zhí)行取決于操作系統(tǒng),更多相關介紹,需要的小伙伴可以參考一下
    2022-06-06
  • Java中File類中常用方法詳解

    Java中File類中常用方法詳解

    這篇文章主要為大家詳細介紹了File類中常用方法的程序演示,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • java本服務如何調(diào)用本服務接口

    java本服務如何調(diào)用本服務接口

    這篇文章主要介紹了java本服務如何調(diào)用本服務接口問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • springBoot中的properties配置解析

    springBoot中的properties配置解析

    這篇文章主要介紹了springBoot中的properties配置解析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Spring Boot日志的打印與持久化詳細解析

    Spring Boot日志的打印與持久化詳細解析

    Spring Boot默認使用SLF4J+Logback 記錄日志,并提供了默認配置,即使我們不進行任何額外配,也可以使用SLF4J+Logback進行日志輸出
    2022-07-07
  • Java內(nèi)存溢出實現(xiàn)原因及解決方案

    Java內(nèi)存溢出實現(xiàn)原因及解決方案

    這篇文章主要介紹了Java內(nèi)存溢出實現(xiàn)原因及解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • SpringBoot使用quartz,注入feignClient,client為null問題

    SpringBoot使用quartz,注入feignClient,client為null問題

    在SpringBoot中使用Quartz和FeignClient時,如果通過@Autowired或構造方法注入FeignClient導致為null,可以使用Spring提供的通過文件名獲取bean的方式解決,這種方法在Quartz啟動時通過反射注入類,而類還未初始化好,導致FeignClient為null的問題
    2024-11-11
  • springboot項目不同環(huán)境的配置讀取方式

    springboot項目不同環(huán)境的配置讀取方式

    SpringBoot支持application.properties、application.yml、application.yaml三種配置文件類型,可同時存在并合并配置,配置文件的讀取優(yōu)先級為:application.properties > application.yml > application.yaml,不同位置的相同類型配置文件
    2024-11-11

最新評論