這篇文章給大家介紹SpringBoot如何校驗yue-library框架,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
創(chuàng)新互聯(lián)是專業(yè)的青羊網(wǎng)站建設公司,青羊接單;提供成都網(wǎng)站設計、成都網(wǎng)站制作,網(wǎng)頁設計,網(wǎng)站設計,建網(wǎng)站,PHP網(wǎng)站建設等專業(yè)做網(wǎng)站服務;采用PHP框架,可快速的進行青羊網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!
輕量級服務端校驗框架
支持注解、功能齊全、使用簡便
主要提供便捷的后臺數(shù)據(jù)校驗功能,支持單個字段或參數(shù)校驗,也支持通過注解校驗對象,用法簡單。
提供基本的非空、長度、大小等校驗方法,也提供一些特殊的正則校驗、身份證、電話、郵箱、IP等校驗方法。
@Valid
被注解的元素是一個POJO對象,用于檢查此對象的所有被注解字段的值是否符合預期
Bean Validation 中內(nèi)置的 constraint
注解 | 作用 |
---|---|
@Null | 被注解的元素必須為 null |
@NotNull | 被注解的元素必須不為 null |
@NotBlank | 被注解的元素必須不為空,并且必須包含至少一個非空白字符 |
@NotEmpty | 被注解的元素必須非空 |
@AssertTrue | 被注解的元素必須為 true |
@AssertFalse | 被注解的元素必須為 false |
@Max | 被注解的元素必須是一個數(shù)字,其值必須小于等于指定的最大值 |
@Min | 被注解的元素必須是一個數(shù)字,其值必須大于等于指定的最小值 |
@DecimalMax | 被注解的元素必須是一個數(shù)字,其值必須小于等于指定的最大值 |
@DecimalMin | 被注解的元素必須是一個數(shù)字,其值必須大于等于指定的最小值 |
@Digits | 被注解的元素必須是一個數(shù)字,其值必須在可接受的范圍內(nèi) |
@Positive | 被注解的元素必須是嚴格意義上的正數(shù) |
@PositiveOrZero | 被注解的元素必須是正數(shù)或0 |
@Negative | 被注解的元素必須是一個嚴格意義上的負數(shù) |
@NegativeOrZero | 被注解的元素必須是負數(shù)或0 |
@Past | 被注解的元素必須是過去的某個瞬間、日期或時間 |
@PastOrPresent | 被注解的元素必須是過去或現(xiàn)在的某個瞬間、日期或時間 |
@Future | 被注解的元素必須是將來的某個瞬間、日期或時間。 |
@FutureOrPresent | 被注解的元素必須是當前或?qū)淼哪硞€瞬間、日期或時間。 |
@Size | 被注解的元素的大小必須在指定的范圍內(nèi) |
被注解的元素必須是電子郵箱地址 | |
@Pattern | 被注解的元素必須符合指定的正則表達式 |
Hibernate Validator 附加的 constraint
注解 | 作用 |
---|---|
@Length | 被注解的字符串的大小必須在指定的范圍內(nèi) |
@Range | 被注解的元素必須在合適的范圍內(nèi) |
@URL | 驗證帶注解的字符串是否為URL |
@Currency | 貨幣金額必須在正確的貨幣單位 |
@CreditCardNumber | 帶注解的元素必須表示有效的信用卡號 |
@CodePointLength | 驗證包含字符序列的代碼點長度在min和max之間 |
@ConstraintComposition | 布爾運算符,應用于組合約束注解的所有約束 |
@SafeHtml | 驗證用戶提供的富文本值,以確保它不包含惡意代碼,例如嵌入的<script> 元素 |
@UniqueElements | 驗證所提供集合中的每個對象都是惟一的,即不能在集合中找到兩個相等的元素 |
@EAN | 檢查帶注解的字符序列是否是有效的EAN 13號。驗證數(shù)字的長度和校驗數(shù)字 |
@ISBN | 檢查帶注解的字符序列是否是有效的ISBN。數(shù)字的長度和校驗數(shù)字都經(jīng)過驗證 |
@LuhnCheck | Luhn算法檢查約束 |
@Mod10Check | Modulo 10 檢查約束 |
@Mod11Check | Modulo 11 檢查約束 |
@ParameterScriptAssert | 方法級約束,它根據(jù)帶注解的方法或構造函數(shù)計算腳本表達式 |
@ScriptAssert | 類級約束,它根據(jù)帶注解的元素計算腳本表達式 |
Yue Validator 附加的 constraint
注解 | 作用 |
---|---|
@Cellphone | 手機號校驗 |
@IdCard | 身份證校驗 |
@PlateNumber | 中國車牌號校驗 |
@Birthday | 生日校驗 |
@Chinese | 中文校驗 |
@English | 英語校驗 |
@UUID | UUID校驗 |
@IPV4 | IPV4地址校驗 |
@IPV6 | IPV6地址校驗 |
@MacAddress | MAC地址校驗 |
單個參數(shù)驗證
// 參數(shù) String name = validationIPO.getName(); String email = validationIPO.getEmail(); String cellphone = validationIPO.getCellphone(); int age = validationIPO.getAge(); DateTime birthday = validationIPO.getBirthday(); // 獲得參數(shù)校驗器-Bean注入 import ai.yue.library.base.validation.Validator; @Autowired private Validator validator; // 獲得參數(shù)校驗器-靜態(tài)方法 Validator.getValidatorAndSetParam(email).email("email"); // 單個參數(shù)校驗 validator.param(email).email("email"); validator.param(cellphone).cellphone("cellphone"); validator.param(name).notNull("name").chinese("name").length(1, 30, "name");
單個參數(shù)校驗-通過param()連寫(連寫直接切換校驗對象)
validator.param(name).notNull("name").param(email).length(5, 25, "email").param(age).min(20, "age").max(60, "age");
在類的屬性上定義注解,同時支持自定義錯誤信息
@Data public class ValidationIPO { @NotEmpty(message = "姓名不能為空") @Length(max = 20, message = "姓名不能超過20個字") private String name; private DateTime birthday; @IdCard private String idcard; @Max(30) @Min(12) private int age; @Email @Length(max = 50) private String email; @Cellphone private String cellphone; @Pattern(regexp = "[1-9]([0-9]{5,11})") private String qq; }
方式一:Controller
層,通過注解@Valid
校驗 (推薦)
@PostMapping("/valid") public Result<?> valid(@Valid ValidationIPO validationIPO) {
方式二:通過調(diào)用validator.valid()方法
validator.valid(validationIPO); // 同樣支持連寫 validator.valid(validationIPO).param(birthday).birthday("birthday");
方式三:將@Valid
注解添加到POJO類上
@Data @Valid public class ValidationIPO { // ... }
并在Controller
層接收此實體參數(shù)
@PostMapping("/valid") public Result<?> valid(ValidationIPO validationIPO) {
校驗不通過會拋出ValidateException(運行時異常),ResultExceptionHandler
類已默認處理。
錯誤響應示例:
{ "code": 433, "msg": "參數(shù)校驗未通過,請參照API核對后重試", "flag": false, "count": null, "data": [ { "errorkey": "cellphone", "errorValue": null, "errorHintMsg": "不是一個合法的手機號碼" }, { "errorkey": "idcard", "errorValue": "500223199607125633", "errorHintMsg": "不是一個合法的身份證號碼" } ] }
關于SpringBoot如何校驗yue-library框架就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
文章題目:SpringBoot如何校驗yue-library框架
轉(zhuǎn)載來源:http://bm7419.com/article0/gejhoo.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、品牌網(wǎng)站制作、靜態(tài)網(wǎng)站、面包屑導航、網(wǎng)站維護、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)