SpringBoot項(xiàng)目使用validated實(shí)現(xiàn)參數(shù)校驗(yàn)框架
引言
當(dāng)談到Spring的參數(shù)校驗(yàn)功能時(shí),@Validated注解無疑是一個(gè)重要的利器。它為我們提供了一種簡(jiǎn)單而又強(qiáng)大的方式來驗(yàn)證請(qǐng)求參數(shù)的合法性,保證了系統(tǒng)的穩(wěn)定性和安全性。本文將介紹Spring Validated的基本用法以及在實(shí)際項(xiàng)目中的應(yīng)用。
一、validated是什么?
@Validated注解的作用和使用方法
- 可以用于Controller類或方法上,開啟對(duì)請(qǐng)求參數(shù)的校驗(yàn)功能。
- 通過在方法參數(shù)上使用其他校驗(yàn)注解(如@NotNull、@NotBlank、@Min、@Max等),對(duì)請(qǐng)求參數(shù)進(jìn)行校驗(yàn)和驗(yàn)證,確保參數(shù)的合法性。
- 可配合使用Spring Validation API或其他支持JSR-303規(guī)范的驗(yàn)證框架(如Hibernate Validator),發(fā)揮@Validated注解的最大效用。
@Validated注解的實(shí)際應(yīng)用示例
- 編寫一個(gè)用戶注冊(cè)接口,結(jié)合@Pattern注解對(duì)用戶名和密碼進(jìn)行格式校驗(yàn)。
- 處理校驗(yàn)失敗時(shí)的異常情況,并返回友好的錯(cuò)誤信息給接口調(diào)用方。
@Validated注解的注意事項(xiàng)和最佳實(shí)踐
- 討論@Validated注解在復(fù)雜校驗(yàn)場(chǎng)景下的使用技巧。
- 如何在全局配置文件中聲明驗(yàn)證器或配置驗(yàn)證規(guī)則,使得@Validated注解更加靈活地適應(yīng)各種項(xiàng)目需求。
二、使用步驟
1.引入maven依賴
代碼如下(示例):
<!-- Validation合法性校驗(yàn)(參數(shù)) 參數(shù)校驗(yàn)框架的依賴--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId> </dependency>
2.使用實(shí)現(xiàn)
代碼如下 參數(shù)長(zhǎng)度在 5 - 16位(示例):
/** * @Description: 用戶相關(guān)的控制層 * @Author: windStop * @Date: 2024/5/26 16:18 */ @RestController @RequestMapping("/user") @Validated //啟用參數(shù)校驗(yàn)功能 public class UserController { @Autowired private UserService userService; /** * 用于注冊(cè)新用戶 在注冊(cè)用戶的時(shí)候需要先判斷用戶名是否存在,因?yàn)橛脩裘豢梢灾貜?fù) * 這里我不打算使用給用戶名添加唯一字段 * @param username 用戶名 * @param password 密碼 * @return 是否注冊(cè)成功 */ @PostMapping("/register") public Result register(@Pattern(regexp = "^\\S{5,16}") String username, @Pattern(regexp = "^\\S{5,16}")String password){ //1.判斷用戶是否存在 if (userService.findByUsername(username)){ return Result.error("用戶名已存在無法注冊(cè)"); } //2.不存在進(jìn)行注冊(cè) boolean flag = userService.register(username,password); return Result.success(flag); } }
總結(jié)
通過本文的學(xué)習(xí),讀者將深入了解Spring Validated的使用方法和原理,掌握在實(shí)際項(xiàng)目中如何有效地利用@Validated注解進(jìn)行參數(shù)校驗(yàn)。希望本文能夠?yàn)槟赟pring項(xiàng)目開發(fā)中遇到的參數(shù)校驗(yàn)問題提供一些啟發(fā)和幫助。如有需要進(jìn)一步了解或其他問題,請(qǐng)隨時(shí)告訴我。
以上就是SpringBoot項(xiàng)目使用validated實(shí)現(xiàn)參數(shù)校驗(yàn)框架的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot validated參數(shù)校驗(yàn)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
基于RxPaparazzo實(shí)現(xiàn)圖片裁剪、圖片旋轉(zhuǎn)、比例放大縮小功能
這篇文章主要為大家詳細(xì)介紹了基于RxPaparazzo實(shí)現(xiàn)圖片裁剪、圖片旋轉(zhuǎn)、比例放大縮小功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05Springboot中動(dòng)態(tài)語言groovy介紹
Apache的Groovy是Java平臺(tái)上設(shè)計(jì)的面向?qū)ο缶幊陶Z言,這門動(dòng)態(tài)語言擁有類似Python、Ruby和Smalltalk中的一些特性,可以作為Java平臺(tái)的腳本語言使用,這篇文章主要介紹了springboot中如何使用groovy,需要的朋友可以參考下2022-09-09java Timer 定時(shí)每天凌晨1點(diǎn)執(zhí)行任務(wù)
這篇文章主要介紹了java Timer 定時(shí)每天凌晨1點(diǎn)執(zhí)行任務(wù)的代碼,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09Mybatis空值關(guān)聯(lián)的具體實(shí)現(xiàn)
在復(fù)雜的數(shù)據(jù)庫查詢中,處理空值關(guān)聯(lián)是一項(xiàng)常見的需求,本文就來介紹一下Mybatis空值關(guān)聯(lián)的具體實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-07-07IDEA 去除 mybatis.xml 文件黃色警告的圖文教程
這篇文章主要介紹了IDEA 去除 mybatis.xml 文件黃色警告的方法,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07Spring Boot利用Lombok減少Java中樣板代碼的方法示例
spring Boot是非常高效的開發(fā)框架,lombok是一套代碼模板解決方案,將極大提升開發(fā)的效率,下面這篇文章主要給大家介紹了關(guān)于Spring Boot利用Lombok減少Java中樣板代碼的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。2017-09-09Java實(shí)現(xiàn)帶頭結(jié)點(diǎn)的單鏈表
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)帶頭結(jié)點(diǎn)的單鏈表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-09-09Spring MVC實(shí)現(xiàn)mysql數(shù)據(jù)庫增刪改查完整實(shí)例
這篇文章主要介紹了Spring MVC實(shí)現(xiàn)mysql數(shù)據(jù)庫增刪改查完整實(shí)例,從創(chuàng)建一個(gè)web項(xiàng)目開始,分享了項(xiàng)目結(jié)構(gòu)以及具體Java代碼和前端頁面等相關(guān)內(nèi)容,具有一定借鑒價(jià)值,需要的朋友可以了解下。2017-12-12java網(wǎng)絡(luò)編程學(xué)習(xí)java聊天程序代碼分享
java聊天程序代碼分享,大家參考使用吧2013-12-12Springboot實(shí)現(xiàn)對(duì)配置文件中的明文密碼加密詳解
我們?cè)赟pringBoot項(xiàng)目當(dāng)中,會(huì)把數(shù)據(jù)庫的用戶名密碼等配置直接放在yaml或者properties文件中,這樣維護(hù)數(shù)據(jù)庫的密碼等敏感信息顯然是有一定風(fēng)險(xiǎn)的。所以本文為大家整理了對(duì)配置文件中的明文密碼加密的方法,希望對(duì)大家有所幫助2023-03-03