SpringBoot項目使用validated實現(xiàn)參數(shù)校驗框架
引言
當(dāng)談到Spring的參數(shù)校驗功能時,@Validated注解無疑是一個重要的利器。它為我們提供了一種簡單而又強大的方式來驗證請求參數(shù)的合法性,保證了系統(tǒng)的穩(wěn)定性和安全性。本文將介紹Spring Validated的基本用法以及在實際項目中的應(yīng)用。
一、validated是什么?
@Validated注解的作用和使用方法
- 可以用于Controller類或方法上,開啟對請求參數(shù)的校驗功能。
- 通過在方法參數(shù)上使用其他校驗注解(如@NotNull、@NotBlank、@Min、@Max等),對請求參數(shù)進行校驗和驗證,確保參數(shù)的合法性。
- 可配合使用Spring Validation API或其他支持JSR-303規(guī)范的驗證框架(如Hibernate Validator),發(fā)揮@Validated注解的最大效用。
@Validated注解的實際應(yīng)用示例
- 編寫一個用戶注冊接口,結(jié)合@Pattern注解對用戶名和密碼進行格式校驗。
- 處理校驗失敗時的異常情況,并返回友好的錯誤信息給接口調(diào)用方。
@Validated注解的注意事項和最佳實踐
- 討論@Validated注解在復(fù)雜校驗場景下的使用技巧。
- 如何在全局配置文件中聲明驗證器或配置驗證規(guī)則,使得@Validated注解更加靈活地適應(yīng)各種項目需求。
二、使用步驟
1.引入maven依賴
代碼如下(示例):
<!-- Validation合法性校驗(參數(shù)) 參數(shù)校驗框架的依賴-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>2.使用實現(xiàn)
代碼如下 參數(shù)長度在 5 - 16位(示例):
/**
* @Description: 用戶相關(guān)的控制層
* @Author: windStop
* @Date: 2024/5/26 16:18
*/
@RestController
@RequestMapping("/user")
@Validated //啟用參數(shù)校驗功能
public class UserController {
@Autowired
private UserService userService;
/**
* 用于注冊新用戶 在注冊用戶的時候需要先判斷用戶名是否存在,因為用戶名不可以重復(fù)
* 這里我不打算使用給用戶名添加唯一字段
* @param username 用戶名
* @param password 密碼
* @return 是否注冊成功
*/
@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("用戶名已存在無法注冊");
}
//2.不存在進行注冊
boolean flag = userService.register(username,password);
return Result.success(flag);
}
}總結(jié)
通過本文的學(xué)習(xí),讀者將深入了解Spring Validated的使用方法和原理,掌握在實際項目中如何有效地利用@Validated注解進行參數(shù)校驗。希望本文能夠為您在Spring項目開發(fā)中遇到的參數(shù)校驗問題提供一些啟發(fā)和幫助。如有需要進一步了解或其他問題,請隨時告訴我。
以上就是SpringBoot項目使用validated實現(xiàn)參數(shù)校驗框架的詳細內(nèi)容,更多關(guān)于SpringBoot validated參數(shù)校驗的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
SpringCloud的JPA連接PostgreSql的教程
這篇文章主要介紹了SpringCloud的JPA接入PostgreSql 教程,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-06-06
ActiveMQ結(jié)合Spring收發(fā)消息的示例代碼
這篇文章主要介紹了ActiveMQ結(jié)合Spring收發(fā)消息的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-10-10
SpringBootAdmin+actuator實現(xiàn)服務(wù)監(jiān)控
這篇文章主要為大家詳細介紹了SpringBootAdmin+actuator實現(xiàn)服務(wù)監(jiān)控,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-01-01
JavaScript中new運算符的實現(xiàn)過程解析
這篇文章主要介紹了JavaScript中new運算符的實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-10-10
SpringBoot實現(xiàn)HTTP調(diào)用的7 種方式
本文主要介紹了SpringBoot實現(xiàn)HTTP調(diào)用的7 種方式,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-04-04
springBoot集成redis的key,value序列化的相關(guān)問題
這篇文章主要介紹了springBoot集成redis的key,value序列化的相關(guān)問題,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
SpringBoot Arthas實現(xiàn)線上監(jiān)控診斷
本文主要介紹了SpringBoot Arthas實現(xiàn)線上監(jiān)控診斷,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2026-03-03
RestTemplate報錯400 Bad Request的解決方案
在使用Spring Boot時,若直接通過@Autowired注入RestTemplate可能會遇到400BadRequest錯誤,原因在于Spring Boot官方文檔指出,由于RestTemplate實例通常需要在使用前進行定制,因此Spring Boot不會自動配置單個RestTemplate Bean2024-11-11

