SpringBoot如何校驗yue-library框架

這篇文章給大家介紹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è)前來合作!

validator

  • 輕量級服務端校驗框架

  • 支持注解、功能齊全、使用簡便

一、功能簡介

主要提供便捷的后臺數(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)
@Email被注解的元素必須是電子郵箱地址
@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)過驗證
@LuhnCheckLuhn算法檢查約束
@Mod10CheckModulo 10 檢查約束
@Mod11CheckModulo 11 檢查約束
@ParameterScriptAssert方法級約束,它根據(jù)帶注解的方法或構造函數(shù)計算腳本表達式
@ScriptAssert類級約束,它根據(jù)帶注解的元素計算腳本表達式

Yue Validator 附加的 constraint

注解作用
@Cellphone手機號校驗
@IdCard身份證校驗
@PlateNumber中國車牌號校驗
@Birthday生日校驗
@Chinese中文校驗
@English英語校驗
@UUIDUUID校驗
@IPV4IPV4地址校驗
@IPV6IPV6地址校驗
@MacAddressMAC地址校驗

三、參數(shù)驗證

單個參數(shù)驗證

單個參數(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");

POJO對象校驗(推薦)

在類的屬性上定義注解,同時支持自定義錯誤信息

@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)

成都定制網(wǎng)站網(wǎng)頁設計