使用@Validate分組驗證參數(shù)
@Validate分組驗證參數(shù)
public interface Group { /** * 新增操作 */ interface ADD {} /** * 更新操作 */ interface UPDATE {} /** * 更新操作 */ interface DELETE {} }
@Data @EqualsAndHashCode(callSuper = false) public class StudentInfoDto implements Serializable { private static final long serialVersionUID = 1L; @JsonSerialize(using = ToStringSerializer.class) @NotBlank(message = "主鍵不能為空", groups = {Group.DELETE.class, Group.UPDATE.class}) private String id; private String name; }
@PostMapping(value = "/delete") public Result delete(@RequestBody @Validated(value = Group.DELETE.class) final StudentInfoDto studentInfoDto) { return studentService.delete(studentInfoDto.getId()); }
@Validated 注解是 Spring Framework 提供的一種用于方法級別參數(shù)驗證的注解。
它通常與 Bean Validation(JSR-380)規(guī)范結(jié)合使用,用于對方法參數(shù)進行驗證。
這個注解可以放在方法的參數(shù)列表上,表示需要對該參數(shù)進行驗證。
在你提到的 @Validated(value = Group.DELETE.class) 中,value = Group.DELETE.class 是一個參數(shù),它的作用是指定驗證時使用的驗證分組(Validation Group)。
驗證分組可以用于在不同場景下執(zhí)行不同的驗證邏輯。
在這里,Group.DELETE.class 可能是一個自定義的驗證分組類,它定義了在執(zhí)行刪除操作時需要進行的驗證規(guī)則。
舉個例子
假設(shè)有一個用戶刪除的方法,只有當(dāng)用戶的權(quán)限滿足一定條件時才能執(zhí)行刪除操作。
那么就可以定義一個刪除操作的驗證分組,其中包含對用戶權(quán)限的驗證規(guī)則。
當(dāng)方法參數(shù)被 @Validated(value = Group.DELETE.class) 注解標記時,就會使用指定的驗證分組對方法參數(shù)進行驗證。
需要注意
@Validated 注解是 Spring 框架提供的,與 @Valid 注解不同,后者是 Bean Validation(JSR-380)規(guī)范中的注解。
雖然它們都可以用于參數(shù)驗證,但 @Validated 注解更加靈活,支持分組驗證等功能。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
springboot如何實現(xiàn)導(dǎo)入其他配置類
這篇文章主要介紹了springboot如何實現(xiàn)導(dǎo)入其他配置類問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-11-11基于springboot實現(xiàn)redis分布式鎖的方法
這篇文章主要介紹了基于springboot實現(xiàn)redis分布式鎖的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11阿里通用OCR文字識別/圖像識別/圖片識別對接代碼示例(Java篇)
這篇文章主要介紹了阿里通用OCR文字識別/圖像識別/圖片識別對接(Java篇)的相關(guān)資料,文中詳細介紹了包括開通服務(wù)、測試圖片、編寫識別代碼、處理識別結(jié)果等步驟,需要的朋友可以參考下2024-12-12Java實現(xiàn)使用Websocket發(fā)送消息詳細代碼舉例
這篇文章主要給大家介紹了關(guān)于Java實現(xiàn)使用Websocket發(fā)送消息的相關(guān)資料,WebSocket是一種協(xié)議,用于在Web應(yīng)用程序和服務(wù)器之間建立實時、雙向的通信連接,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-05-05SpringBoot數(shù)據(jù)訪問自定義使用Druid數(shù)據(jù)源的方法
本文記錄Druid數(shù)據(jù)源的使用,自定義實現(xiàn)Drud的功能、監(jiān)控頁、登錄、統(tǒng)計等。對SpringBoot數(shù)據(jù)訪問使用Druid數(shù)據(jù)源的相關(guān)知識感興趣額朋友一起看看吧2021-08-08Java中import java.util.Scanner的用處詳解
文章主要介紹Java中的Scanner類及其常用方法next()和nextLine()的區(qū)別,next()方法在遇到空格、Tab鍵、回車鍵等分隔符時結(jié)束輸入,而nextLine()方法則接收所有輸入,直到遇到回車鍵2024-11-11