亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SpringBoot如何校驗yue-library框架

發布時間:2021-09-29 14:06:29 來源:億速云 閱讀:125 作者:柒染 欄目:編程語言

這篇文章給大家介紹SpringBoot如何校驗yue-library框架,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

validator

  • 輕量級服務端校驗框架

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

一、功能簡介

主要提供便捷的后臺數據校驗功能,支持單個字段或參數校驗,也支持通過注解校驗對象,用法簡單。

提供基本的非空、長度、大小等校驗方法,也提供一些特殊的正則校驗、身份證、電話、郵箱、IP等校驗方法。

二、注解介紹

@Valid 被注解的元素是一個POJO對象,用于檢查此對象的所有被注解字段的值是否符合預期

Bean Validation 中內置的 constraint

注解作用
@Null被注解的元素必須為 null
@NotNull被注解的元素必須不為 null
@NotBlank被注解的元素必須不為空,并且必須包含至少一個非空白字符
@NotEmpty被注解的元素必須非空
@AssertTrue被注解的元素必須為 true
@AssertFalse被注解的元素必須為 false
@Max被注解的元素必須是一個數字,其值必須小于等于指定的最大值
@Min被注解的元素必須是一個數字,其值必須大于等于指定的最小值
@DecimalMax被注解的元素必須是一個數字,其值必須小于等于指定的最大值
@DecimalMin被注解的元素必須是一個數字,其值必須大于等于指定的最小值
@Digits被注解的元素必須是一個數字,其值必須在可接受的范圍內
@Positive被注解的元素必須是嚴格意義上的正數
@PositiveOrZero被注解的元素必須是正數或0
@Negative被注解的元素必須是一個嚴格意義上的負數
@NegativeOrZero被注解的元素必須是負數或0
@Past被注解的元素必須是過去的某個瞬間、日期或時間
@PastOrPresent被注解的元素必須是過去或現在的某個瞬間、日期或時間
@Future被注解的元素必須是將來的某個瞬間、日期或時間。
@FutureOrPresent被注解的元素必須是當前或將來的某個瞬間、日期或時間。
@Size被注解的元素的大小必須在指定的范圍內
@Email被注解的元素必須是電子郵箱地址
@Pattern被注解的元素必須符合指定的正則表達式

Hibernate Validator 附加的 constraint

注解作用
@Length被注解的字符串的大小必須在指定的范圍內
@Range被注解的元素必須在合適的范圍內
@URL驗證帶注解的字符串是否為URL
@Currency貨幣金額必須在正確的貨幣單位
@CreditCardNumber帶注解的元素必須表示有效的信用卡號
@CodePointLength驗證包含字符序列的代碼點長度在min和max之間
@ConstraintComposition布爾運算符,應用于組合約束注解的所有約束
@SafeHtml驗證用戶提供的富文本值,以確保它不包含惡意代碼,例如嵌入的<script>元素
@UniqueElements驗證所提供集合中的每個對象都是惟一的,即不能在集合中找到兩個相等的元素
@EAN檢查帶注解的字符序列是否是有效的EAN 13號。驗證數字的長度和校驗數字
@ISBN檢查帶注解的字符序列是否是有效的ISBN。數字的長度和校驗數字都經過驗證
@LuhnCheckLuhn算法檢查約束
@Mod10CheckModulo 10 檢查約束
@Mod11CheckModulo 11 檢查約束
@ParameterScriptAssert方法級約束,它根據帶注解的方法或構造函數計算腳本表達式
@ScriptAssert類級約束,它根據帶注解的元素計算腳本表達式

Yue Validator 附加的 constraint

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

三、參數驗證

單個參數驗證

單個參數驗證

// 參數
String name = validationIPO.getName();
String email = validationIPO.getEmail();
String cellphone = validationIPO.getCellphone();
int age = validationIPO.getAge();
DateTime birthday = validationIPO.getBirthday();

// 獲得參數校驗器-Bean注入
import ai.yue.library.base.validation.Validator;
@Autowired
private Validator validator;

// 獲得參數校驗器-靜態方法
Validator.getValidatorAndSetParam(email).email("email");

// 單個參數校驗
validator.param(email).email("email");
validator.param(cellphone).cellphone("cellphone");
validator.param(name).notNull("name").chinese("name").length(1, 30, "name");

單個參數校驗-通過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) {

方式二: 通過調用validator.valid()方法

validator.valid(validationIPO);
// 同樣支持連寫
validator.valid(validationIPO).param(birthday).birthday("birthday");

方式三:@Valid注解添加到POJO類上

@Data
@Valid
public class ValidationIPO {
	// ...
}

并在Controller層接收此實體參數

@PostMapping("/valid")
public Result<?> valid(ValidationIPO validationIPO) {

校驗不通過時處理

校驗不通過會拋出ValidateException(運行時異常),ResultExceptionHandler類已默認處理。

錯誤響應示例:

{
    "code": 433,
    "msg": "參數校驗未通過,請參照API核對后重試",
    "flag": false,
    "count": null,
    "data": [
        {
            "errorkey": "cellphone",
            "errorValue": null,
            "errorHintMsg": "不是一個合法的手機號碼"
        },
        {
            "errorkey": "idcard",
            "errorValue": "500223199607125633",
            "errorHintMsg": "不是一個合法的身份證號碼"
        }
    ]
}

關于SpringBoot如何校驗yue-library框架就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

肇源县| 岢岚县| 会同县| 玛曲县| 黔南| 钟祥市| 东台市| 南开区| 嘉峪关市| 疏勒县| 安图县| 麟游县| 财经| 永昌县| 长岭县| 榕江县| 平谷区| 伊春市| 神农架林区| 香港| 依兰县| 县级市| 五指山市| 独山县| 垫江县| 高密市| 化州市| 寻乌县| 清河县| 丹凤县| 乐安县| 元氏县| 仁化县| 深州市| 扶绥县| 东宁县| 濮阳市| 高淳县| 儋州市| 尼勒克县| 马鞍山市|