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

springboot異步處理@NotBlank或@NotNull注釋校驗不生效問題

 更新時間:2024年01月23日 08:39:25   作者:今天寫bug了嗎?  
這篇文章主要介紹了springboot異步處理@NotBlank或@NotNull注釋校驗不生效問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

問題描述

 在springboot中開啟異步后,再異步方法中使用service層方法進行插入,如果開始了@NotBlank 或者@NotNull的時候,發(fā)現(xiàn)校驗不生效。

解決方式

?實現(xiàn)方法:

@Data
public class A{

    @NotBlank(message = "name不能為空")
    private String name;
    
    @NotBlank(message = "age")
    private String age;

    
}
public class IAServiceImpl implements IAService {
    
    //獲取校驗的Bean
    private final Validator validator;

    public IAServiceImpl() {
        this.validator = Validation.buildDefaultValidatorFactory().getValidator();
    }
    
     @Async
    public void export(A a) {
        //異步方式中調(diào)用A插入,失敗則可以獲取到message中的信息了
        try{
           insert(a) 
        }catch(Exception e){
            logger.error("插入失敗:",e.getMessage())
        }
        
    }
    
    @Override
    public int insert(@Validated A a) {
        //獲取校驗
        Set<ConstraintViolation<A>> violations = validator.validate(A);
        if (!violations.isEmpty()) {
            throw new RuntimeException(violations.iterator().next().getMessage());
        } else {
            return aMapper.insert(A);
        }
    }
}

擴展:如何開啟分組校驗

如果使用了分組校驗,則需要添加參數(shù)

實現(xiàn)方法:

@Data
public class A{

    //定義插入接口
    public interface Insert {}

    public interface Update {}

    
    @NotBlank(message = "name不能為空", groups = {Insert.class})
    private String name;
    
    @NotBlank(message = "age",groups = {Update.class})
    private String age;

    
}
public class IAServiceImpl implements IAService {
    
    //獲取校驗的Bean
    private final Validator validator;

    public IAServiceImpl() {
        this.validator = Validation.buildDefaultValidatorFactory().getValidator();
    }
    
     @Async
    public void export(A a) {
        //異步方式中調(diào)用A插入,失敗則可以獲取到message中的信息了
        try{
           insert(a) 
        }catch(Exception e){
            logger.error("插入失?。?,e.getMessage())
        }
        
    }
    
    @Override
    public int insert(@Validated A a) {
        //獲取校驗 開啟分組后這樣就只會校驗插入分組的校驗信息
        Set<ConstraintViolation<A>> violations = validator.validate(A,A.Insert.class);
        if (!violations.isEmpty()) {
            throw new RuntimeException(violations.iterator().next().getMessage());
        } else {
            return aMapper.insert(A);
        }
    }
}

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Java 排序算法整合(冒泡,快速,希爾,拓撲,歸并)

    Java 排序算法整合(冒泡,快速,希爾,拓撲,歸并)

    這篇文章主要介紹了Java 排序算法整合(冒泡,快速,希爾,拓撲,歸并),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-09-09
  • Maven分步詳解多環(huán)境配置與應用流程

    Maven分步詳解多環(huán)境配置與應用流程

    這篇文章主要介紹了Maven進階多環(huán)境配置與應用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08
  • java的引用類型的詳細介紹

    java的引用類型的詳細介紹

    在java中提供了4個級別的引用:強引用、軟引用、弱引用、虛引用。其中強引用FinalReference是default個飾符來修飾,其它3個級別均為public修飾
    2013-10-10
  • java基于UDP實現(xiàn)圖片群發(fā)功能

    java基于UDP實現(xiàn)圖片群發(fā)功能

    這篇文章主要為大家詳細介紹了java基于UDP實現(xiàn)圖片群發(fā)功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • MyBatisPlus 一對多、多對一、多對多的完美解決方案

    MyBatisPlus 一對多、多對一、多對多的完美解決方案

    這篇文章主要介紹了MyBatisPlus 一對多、多對一、多對多的完美解決方案,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • JAVA SpringBoot統(tǒng)一日志處理原理詳解

    JAVA SpringBoot統(tǒng)一日志處理原理詳解

    這篇文章主要介紹了SpringBoot的統(tǒng)一日志處理原理,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-09-09
  • python實現(xiàn)高斯模糊及原理詳解

    python實現(xiàn)高斯模糊及原理詳解

    高斯模糊是一種常見的模糊技術,本文主要介紹了python實現(xiàn)高斯模糊及原理詳解,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • SpringBatch數(shù)據(jù)寫入實現(xiàn)

    SpringBatch數(shù)據(jù)寫入實現(xiàn)

    Spring Batch通過ItemWriter接口及其豐富的實現(xiàn),提供了強大的數(shù)據(jù)寫入能力,本文主要介紹了SpringBatch數(shù)據(jù)寫入實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2025-04-04
  • RabbitMQ消息隊列中多路復用Channel信道詳解

    RabbitMQ消息隊列中多路復用Channel信道詳解

    這篇文章主要介紹了RabbitMQ消息隊列中多路復用Channel信道詳解,消息Message是指在應用間傳送的數(shù)據(jù),消息可以非常簡單,比如只包含文本字符串,也可以更復雜,可能包含嵌入對象,需要的朋友可以參考下
    2023-08-08
  • jdk21環(huán)境配置詳細步驟記錄

    jdk21環(huán)境配置詳細步驟記錄

    JDK是整個Java開發(fā)的核心,它包含了Java的運行環(huán)境和Java工具,這篇文章主要給大家介紹了關于jdk21環(huán)境配置的相關資料,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2023-11-11

最新評論