java 后端校验_如何实现Java后端数据校验?看这篇就足够!
前言
每次我們在搭建一個開源項(xiàng)目的首要任務(wù)包括:項(xiàng)目的統(tǒng)一異常處理、統(tǒng)一結(jié)果封裝以及做項(xiàng)目的數(shù)據(jù)校驗(yàn),在前后端分離的情況下,不僅前端需要做數(shù)據(jù)校驗(yàn),同樣后端也要實(shí)現(xiàn),前端主要使用一些類似與jQuery Validate等js/css插件實(shí)現(xiàn)通過數(shù)據(jù)校驗(yàn),比如:bootstrap-validator,而后端主要使用的是Hibernate Validator檢驗(yàn)框架,通過數(shù)據(jù)校驗(yàn),我們能避免用戶借助一些HTTP請求工具直接向后端發(fā)送一些不合法的數(shù)據(jù)請求,本文將入如何在Spring/Spring Boot下實(shí)現(xiàn)后端的數(shù)據(jù)校驗(yàn)。
Hibernate Validator
常見注解
注解
用途
Valid
遞歸的對關(guān)聯(lián)的對象進(jìn)行校驗(yàn)
AssertFalse
用于boolean字段,該字段的值只能為false
AssertTrue
用于boolean字段,該字段只能為true
DecimalMax(value)
被注釋的元素必須是一個數(shù)字,只能大于或等于該值
DecimalMin(value)
被注釋的元素必須是一個數(shù)字,只能小于或等于該值
Digits(integer,fraction)
檢查是否是一種數(shù)字的(整數(shù),小數(shù))的位數(shù)
Future
檢查該字段的日期是否是屬于將來的日期
FutureOrPresent
判斷日期是否是將來或現(xiàn)在日期
Past
檢查該字段的日期是在過去
PastOrPresent
判斷日期是否是過去或現(xiàn)在日期
Max(value)
該字段的值只能小于或等于該值
Min(value)
該字段的值只能大于或等于該值
Negative
判斷負(fù)數(shù)
NegativeOrZero
判斷負(fù)數(shù)或0
Positive
判斷正數(shù)
PositiveOrZero
判斷正數(shù)或0
NotNull
不能為null
Null
必須為 null
Pattern(value)
被注釋的元素必須符合指定的正則表達(dá)式
Size(max, min)
檢查該字段的size是否在min和max之間,可以是字符串、數(shù)組、集合、Map等
Length(max, min)
判斷字符串長度
CreditCardNumber
被注釋的字符串必須通過Luhn校驗(yàn)算法,銀行卡,信用卡等號碼一般都用Luhn計算合法性
被注釋的元素必須是電子郵箱地址
Length(min=, max=)
被注釋的字符串的大小必須在指定的范圍內(nèi)
NotBlank
只能用于字符串不為null,并且字符串trim()以后length要大于0
NotEmpty
集合對象的元素不為0,即集合不為空,也可以用于字符串不為null
Range(min=, max=)
被注釋的元素必須在合適的范圍內(nèi)
SafeHtml
classpath中要有jsoup包
ScriptAssert
要有Java Scripting API 即JSR 223("Scripting for the JavaTMPlatform")的實(shí)現(xiàn)
URL(protocol=,host=,port=,regexp=,flags=)
被注釋的字符串必須是一個有效的url
Maven依賴
org.hibernate.validator
hibernate-validator
6.1.0.Final
org.hibernate.validator
hibernate-validator
6.1.0.Final
org.springframework.boot
spring-boot-starter-web
org.projectlombok
lombok
true
org.springframework.boot
spring-boot-starter-test
test
總結(jié)
以上是生活随笔為你收集整理的java 后端校验_如何实现Java后端数据校验?看这篇就足够!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java snmp walk_snmpw
- 下一篇: java nio与io_Java NIO