天天看點

spring-boot-validator參數校驗系列(2)--------分組校驗

前言

目錄

spring-boot-validator參數校驗系列(1)--------基本參數校驗

spring-boot-validator參數校驗系列(2)--------分組校驗 spring-boot-validator參數校驗系列(3)--------自定義校驗注解 spring-boot-validator參數校驗系列(4)--------自定義參數校驗異常

一、為什麼要分組校驗?

因為對同一個實體有不同的業務操作,比如添加使用者時,使用者名不可為空,更新使用者資訊時,id不可為空。此時采取統一交驗,則會出現添加時,必須填寫id。

二、如何實作?

(1)首先完成基本校驗

(2)建立分組校驗标記接口

import javax.validation.groups.Default;

/**
 * @Description : 校驗注解标記接口,更新類型。注意:
 * 若不實作Default接口,那麼預設的沒有添加分組的注解則不會進行校驗
   也就是如果不繼承Default預設接口,那麼下面MyPerson中的name上的@Size則會失效
 */
public interface Update extends Default {
}      

如果不繼承Default預設接口,那麼下面MyPerson中的name上的@Size則會失效!

重要的事情說三遍!!!

(3)校驗注解中groups屬性添加分組标記接口

@Data//lombok注解
public class MyPerson {

    @NotBlank(message = "id不可為空!",groups = {Update.class})
    private String id;
    
    @Size(max = 8,min = 1, message = "姓名字元超出範圍!")
    private String name;
}      

(3)Controller中的@Validated 注解加入标記接口(首尾呼應寫作方法)。

這裡以更新為例,因為name沒有進行Update.class分組,是以不填(即:null)不會校驗

PostMan通路

spring-boot-validator參數校驗系列(2)--------分組校驗

背景輸出結構

spring-boot-validator參數校驗系列(2)--------分組校驗

繼續閱讀