SpringBoot項(xiàng)目使用validated實(shí)現(xiàn)參數(shù)校驗(yàn)框架
引言
當(dāng)談到Spring的參數(shù)校驗(yàn)功能時(shí),@Validated注解無(wú)疑是一個(gè)重要的利器。它為我們提供了一種簡(jiǎn)單而又強(qiáng)大的方式來(lái)驗(yàn)證請(qǐng)求參數(shù)的合法性,保證了系統(tǒng)的穩(wěn)定性和安全性。本文將介紹Spring Validated的基本用法以及在實(shí)際項(xiàng)目中的應(yīng)用。
一、validated是什么?
@Validated注解的作用和使用方法
- 可以用于Controller類或方法上,開(kāi)啟對(duì)請(qǐng)求參數(shù)的校驗(yàn)功能。
- 通過(guò)在方法參數(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)用示例
- 編寫(xiě)一個(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("用戶名已存在無(wú)法注冊(cè)");
}
//2.不存在進(jìn)行注冊(cè)
boolean flag = userService.register(username,password);
return Result.success(flag);
}
}總結(jié)
通過(guò)本文的學(xué)習(xí),讀者將深入了解Spring Validated的使用方法和原理,掌握在實(shí)際項(xiàng)目中如何有效地利用@Validated注解進(jìn)行參數(shù)校驗(yàn)。希望本文能夠?yàn)槟赟pring項(xiàng)目開(kāi)發(fā)中遇到的參數(shù)校驗(yàn)問(wèn)題提供一些啟發(fā)和幫助。如有需要進(jìn)一步了解或其他問(wè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)文章
SpringCloud的JPA連接PostgreSql的教程
這篇文章主要介紹了SpringCloud的JPA接入PostgreSql 教程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-06-06
ActiveMQ結(jié)合Spring收發(fā)消息的示例代碼
這篇文章主要介紹了ActiveMQ結(jié)合Spring收發(fā)消息的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-10-10
SpringBootAdmin+actuator實(shí)現(xiàn)服務(wù)監(jiān)控
這篇文章主要為大家詳細(xì)介紹了SpringBootAdmin+actuator實(shí)現(xiàn)服務(wù)監(jiān)控,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
JavaScript中new運(yùn)算符的實(shí)現(xiàn)過(guò)程解析
這篇文章主要介紹了JavaScript中new運(yùn)算符的實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10
SpringBoot實(shí)現(xiàn)HTTP調(diào)用的7 種方式
本文主要介紹了SpringBoot實(shí)現(xiàn)HTTP調(diào)用的7 種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-04-04
springBoot集成redis的key,value序列化的相關(guān)問(wèn)題
這篇文章主要介紹了springBoot集成redis的key,value序列化的相關(guān)問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
SpringBoot Arthas實(shí)現(xiàn)線上監(jiān)控診斷
本文主要介紹了SpringBoot Arthas實(shí)現(xiàn)線上監(jiān)控診斷,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2026-03-03
RestTemplate報(bào)錯(cuò)400 Bad Request的解決方案
在使用Spring Boot時(shí),若直接通過(guò)@Autowired注入RestTemplate可能會(huì)遇到400BadRequest錯(cuò)誤,原因在于Spring Boot官方文檔指出,由于RestTemplate實(shí)例通常需要在使用前進(jìn)行定制,因此Spring Boot不會(huì)自動(dòng)配置單個(gè)RestTemplate Bean2024-11-11

