SpringBoot使用@valid進(jìn)行參數(shù)校驗(yàn)的流程步驟
Spring Boot 提供了一種方便的方式來進(jìn)行參數(shù)校驗(yàn):使用 Hibernate Validator。
要在 Spring Boot 應(yīng)用程序中使用 Hibernate Validator,您需要按照以下步驟進(jìn)行操作:
1、添加依賴項(xiàng)
在 pom.xml 或 build.gradle 文件中添加以下依賴項(xiàng):
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId> </dependency>
2、創(chuàng)建驗(yàn)證器類
創(chuàng)建一個(gè)驗(yàn)證器類,該類包含要驗(yàn)證的字段及其規(guī)則。例如:
public class MyRequest {
@NotNull(message = "Name cannot be null")
private String name;
@Min(value = 18, message = "Age should not be less than 18")
private int age;
@Email(message = "Email should be valid")
private String email;
// getters and setters
}3、在控制器中使用驗(yàn)證器
將驗(yàn)證器作為參數(shù)傳遞給控制器方法,并使用 @Valid 注釋進(jìn)行注釋。例如:
@RestController
@RequestMapping("/api")
public class MyController {
@PostMapping("/users")
public ResponseEntity<?> addUser(@Valid @RequestBody MyRequest request) {
return ResponseEntity.ok().build();
}
}這樣就可以在請求中使用 @Valid 注釋進(jìn)行驗(yàn)證,如果不符合條件,則會(huì)拋出 ConstraintViolationException 異常。
但是,這樣的信息對于開發(fā)來說非常雜亂,因此,我們可以用全局異常處理,來統(tǒng)一進(jìn)行參數(shù)驗(yàn)證。通過@ExceptionHandler指定我們需要處理的異常,e.getBindingResult()來獲取我們校驗(yàn)后結(jié)果對象,如果發(fā)生校驗(yàn)失敗就通過bindingReslt.getFiledError().getDefaultMessage()獲取綁定在對象上面message信息,并返回。

以上就是SpringBoot使用@valid進(jìn)行參數(shù)校驗(yàn)的流程步驟的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot @valid參數(shù)校驗(yàn)的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
java中的類型自動(dòng)轉(zhuǎn)換機(jī)制解析
這篇文章主要介紹了java中的類型自動(dòng)轉(zhuǎn)換機(jī)制,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03
SpringBoot種如何使用?EasyExcel?實(shí)現(xiàn)自定義表頭導(dǎo)出并實(shí)現(xiàn)數(shù)據(jù)格式化轉(zhuǎn)換
本文詳細(xì)介紹了如何使用EasyExcel工具類實(shí)現(xiàn)自定義表頭導(dǎo)出,并實(shí)現(xiàn)數(shù)據(jù)格式化轉(zhuǎn)換與添加下拉框操作,通過示例和代碼,展示了如何處理不同數(shù)據(jù)結(jié)構(gòu)和注解,確保數(shù)據(jù)在導(dǎo)出時(shí)能夠正確顯示和格式化,此外,還介紹了如何解決特定數(shù)據(jù)類型的轉(zhuǎn)換問題,并提供了解決方案2024-11-11
Java中BigDecimal的舍入模式解析(RoundingMode)
這篇文章主要介紹了Java中BigDecimal的舍入模式解析(RoundingMode),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06
Java?GenericObjectPool?對象池化技術(shù)之SpringBoot?sftp?連接池工具類詳解
這篇文章主要介紹了Java?GenericObjectPool?對象池化技術(shù)之SpringBoot?sftp?連接池工具類詳解,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04
JAVA中的Token 基于Token的身份驗(yàn)證實(shí)例
這篇文章主要介紹了JAVA中的Token 基于Token的身份驗(yàn)證實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08
Spring過濾器中OncePerRequestFilter應(yīng)用實(shí)現(xiàn)
OncePerRequestFilter是Spring框架提供的一個(gè)過濾器基類,本文就來介紹一下Spring過濾器中OncePerRequestFilter應(yīng)用實(shí)現(xiàn),感興趣的可以了解一下2024-12-12

