最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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);
        }
    }
}

總結(jié)

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

相關(guān)文章

  • SpringBoot+React實現(xiàn)計算個人所得稅

    SpringBoot+React實現(xiàn)計算個人所得稅

    本文將以個人所得稅的計算為例,使用React+SpringBoot+GcExcel來實現(xiàn)這一功能,文中的示例代碼講解詳細,具有一定的學(xué)習(xí)價值,感興趣的小伙伴可以了解下
    2023-09-09
  • 淺析Java中的繼承與組合

    淺析Java中的繼承與組合

    本文將介紹組合和繼承的概念及區(qū)別,并從多方面分析在寫代碼時如何進行選擇。文中通過示例代碼介紹的很詳細,有需要的朋友可以參考借鑒,下面來一起看看吧。
    2016-12-12
  • Spring中的@CrossOrigin注解的使用詳細解讀

    Spring中的@CrossOrigin注解的使用詳細解讀

    這篇文章主要介紹了Spring中的@CrossOrigin注解的使用詳細解讀,跨源資源共享(CORS),是由大多數(shù)瀏覽器實現(xiàn)的W3C規(guī)范,允許對跨域請求進行靈活授權(quán),用來代替IFRAME或JSONP等非正規(guī)實現(xiàn)方式,需要的朋友可以參考下
    2023-11-11
  • Java實戰(zhàn)員工績效管理系統(tǒng)的實現(xiàn)流程

    Java實戰(zhàn)員工績效管理系統(tǒng)的實現(xiàn)流程

    只學(xué)書上的理論是遠遠不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+SSM+Mysql+Maven+HTML實現(xiàn)一個員工績效管理系統(tǒng),大家可以在過程中查缺補漏,提升水平
    2022-01-01
  • 帶你輕松搞定Java面向?qū)ο蟮木幊?-數(shù)組,集合框架

    帶你輕松搞定Java面向?qū)ο蟮木幊?-數(shù)組,集合框架

    Java是面向?qū)ο蟮母呒壘幊陶Z言,類和對象是 Java程序的構(gòu)成核心。圍繞著Java類和Java對象,有三大基本特性:封裝是Java 類的編寫規(guī)范、繼承是類與類之間聯(lián)系的一種形式、而多態(tài)為系統(tǒng)組件或模塊之間解耦提供了解決方案
    2021-06-06
  • Java多線程并發(fā)synchronized?關(guān)鍵字

    Java多線程并發(fā)synchronized?關(guān)鍵字

    這篇文章主要介紹了Java多線程并發(fā)synchronized?關(guān)鍵字,Java?在虛擬機層面提供了?synchronized?關(guān)鍵字供開發(fā)者快速實現(xiàn)互斥同步的重量級鎖來保障線程安全。
    2022-06-06
  • 基于紅黑樹插入操作原理及java實現(xiàn)方法(分享)

    基于紅黑樹插入操作原理及java實現(xiàn)方法(分享)

    下面小編就為大家分享一篇基于紅黑樹插入操作原理及java實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • Java中如何比較兩個數(shù)組中元素是否相同

    Java中如何比較兩個數(shù)組中元素是否相同

    比較兩個數(shù)組中的元素是否相同,在項目中經(jīng)常會使用到,下面與大家分享個最簡單的方法
    2014-06-06
  • Java判斷閏年的2種方法示例

    Java判斷閏年的2種方法示例

    這篇文章主要給大家介紹了關(guān)于Java判斷閏年的2種方法,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用Java具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Spring?中的切面與事務(wù)結(jié)合使用完整示例

    Spring?中的切面與事務(wù)結(jié)合使用完整示例

    本文給大家介紹Spring中的切面與事務(wù)結(jié)合使用完整示例,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2025-08-08

最新評論

汕尾市| 双桥区| 延庆县| 汉沽区| 厦门市| 布尔津县| 宣汉县| 柘城县| 华阴市| 盐源县| 蓬溪县| 牡丹江市| 开化县| 龙海市| 南宫市| 宣化县| 新野县| 云阳县| 弋阳县| 神池县| 关岭| 广元市| 华池县| 鱼台县| 旬阳县| 盐源县| 会泽县| 泾阳县| 嘉义市| 城口县| 昆明市| 天气| 吉安县| 揭西县| 绿春县| 西藏| 淮阳县| 乐平市| 松滋市| 子洲县| 临沭县|