Springboot優雅進行欄位檢驗
阿新 • • 發佈:2022-12-06
Springboot優雅進行欄位檢驗
1、Controller VS Service
推薦與業務無關的放在controller層中進行校驗,而與業務相關的放在service層中校驗。
2、常用校驗工具類
使用Hibernate Validate
引入依賴
<dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>4.3.1.Final</version> </dependency>
常用註解說明
註解 | 說明 |
---|---|
@Length(min=,max=) | 檢查所屬欄位的長度是否在min和max之間,只能用於字串 |
@Range(min=,max=,message=) | 被註釋的元素必須在合適的範圍內 |
@Max | 該欄位的值只能小於獲等於該值 |
@Min | 該欄位的值只能大於或等於該值 |
@NotNull | 不能為null |
@NotBlank | 不能為空,檢查時會將空格忽略 |
@NotEmpty | 不能為空,這裡的空指的是空字串 |
@Pattern(regex=,flag=) | 被註釋的元素必須符合指定的正則表示式 |
3、實操
需要搭配在Controller中搭配@Validated或@Valid註解一起使用,@Validated和@Valid註解區別不是很大,一般情況下任選一個即可,區別如下:
註解 | @validated | @valid |
---|---|---|
所屬的包 | 屬於org.springframework.validation.annotation包下的,是由spring | 屬於javax.validation包下,是jdk給提供的 |
是否支援分組和排序 | 是 | 否 |
雖然@Validated比@Valid更加強大,在@Valid之上提供了分組功能和驗證排序功能,不過在實際專案中一直沒有用到過。
Hibernate-validate框架中的註解是需要加在實體中一起使用的。