Kotlin + Spring Boot 請求參數(shù)驗證的代碼實例
編寫 Web 應用程序的時候,經(jīng)常要做的事就是要對前端傳回的數(shù)據(jù)進行簡單的驗證,比如是否非空、字符長度是否滿足要求,郵箱格式是否正確等等。在 Spring Boot 中,可以使用 Bean Validation (JSR-303) 技術通過注解的方式來進行參數(shù)驗證。
準備 DTO 對象
data class UserRegisterModel(
@get: NotEmpty(message = "User name is required")
@get: Size(message = "Length of user name must be between 6 and 20", min = 6, max = 20)
var username: String,
@get: NotEmpty(message = "Password is required")
var password: String,
@get: NotEmpty(message = "Email is required")
@get: Email
var email: String)
這里定義了一個十分常見的 DTO 對象,用來承載用戶注冊時的數(shù)據(jù),可能你已經(jīng)注意到了一些奇怪的地方,在一些注解的前面多了get:這樣的東西,是因為 kotlin 會直接在字節(jié)碼中生成 getter 跟 setter,這樣寫是顯式的是表明這個注解應該作用在getter上。
準備一個 Controller
/**
* 用戶注冊接口
*/
@PostMapping
fun register(@Valid @RequestBody model: UserRegisterModel): Any {
val user = User(userName = model.username, password = model.password, email = model.email)
userRepo.save(user)
return user
}
只需要在需要驗證的參數(shù)前加上 @Valid 注解,Spring 就會自動的驗證參數(shù)的正確性。
來個測試
把用戶名空著

參數(shù)完整且正確

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Spring?MVC和springboot靜態(tài)資源處理問題
這篇文章主要介紹了Spring?MVC和springboot靜態(tài)資源處理問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08
Spring Cloud Zuul自定義過濾器的實現(xiàn)
這篇文章主要介紹了自定義Spring Cloud Zuul過濾器的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-03-03
springboot3.x版本集成log4j沖突以及解決log4j沖突不生效問題
由于Spring Boot自帶的Logback與Log4j沖突,去除了Logback的jar包后仍存在,原因是其他包也引入了Logback,解決方法是找到并去除引入Logback的其他包,如actuator包,并更新Maven2024-11-11
基于Redis分布式鎖Redisson及SpringBoot集成Redisson
這篇文章主要介紹了基于Redis分布式鎖Redisson及SpringBoot集成Redisson,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的小小伙伴可以參考一下2022-09-09
解析ConcurrentHashMap: transfer方法源碼分析(難點)
ConcurrentHashMap是由Segment數(shù)組結構和HashEntry數(shù)組結構組成。Segment的結構和HashMap類似,是一種數(shù)組和鏈表結構,今天給大家普及java面試常見問題---ConcurrentHashMap知識,一起看看吧2021-06-06

