第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定

為什么要引入hibernate-validator

在代碼中沒有看到使用hibernate-validator里面的內(nèi)容呀

正在回答

1 回答

課程例講解的很清楚了,在沒有引入hibernate-validator之前,我們使用判空的方式來驗證UserModel。

????????//如果需要的信息為空,則拋出異常
????????if?(StringUtils.isEmpty(userModel.getName())
???????????????||?userModel.getAge()?==?null
???????????????||?userModel.getGender()?==?null
???????????????||?StringUtils.isEmpty(userModel.getTelephone())
???????????????||?StringUtils.isEmpty(userModel.getEncrptPassword()))?{
????????????throw?new?BusinessException(EnumBussinessError.PARAMETER_VALIDATION_ERROR);
????????}

hibernate-validator是一個驗證框架,可以大大簡化驗證的過程,增加了驗證的細(xì)節(jié)

首先我們對UserModel進(jìn)行了改造

@NotBlank(message?=?"用戶名不能為空")
private?String?name;

@NotNull(message?=?"性別不能為空")
private?Byte?gender;

@NotNull(message?=?"年齡不能為空")
@Min(value?=?0,?message?=?"年齡不能小于0")
@Max(value?=?150,?message?=?"年齡不能大于150")
private?Integer?age;

@NotBlank(message?=?"手機(jī)號不能為空")
private?String?telephone;

private?String?registreMode;

private?String?thirdPartyId;

@NotBlank(message?=?"密碼不能為空")
private?String?encrptPassword;

其次我們建立其了兩個類,一個是ValidatorUtil,用來驗證添加驗證規(guī)則的UserModel;另一個類ValidatorResult,用來保存驗證后的信息。

驗證代碼就簡化為:

ValidatorResult?validatorResult?=?validatorUtil.validate(userModel);
if?(validatorResult.getHasError())?{
????throw?new?BusinessException(EnumBussinessError.PARAMETER_VALIDATION_ERROR,validatorResult.getErrorMsg());
}

可以參考如下文章:

SpringBoot 統(tǒng)一異常、數(shù)據(jù)校驗處理



5 回復(fù) 有任何疑惑可以回復(fù)我~
#1

willwei 提問者

我的意思是去掉hibernate-validator這個框架后,這些代碼一樣的能運(yùn)行,引不引入都一樣
2019-01-23 回復(fù) 有任何疑惑可以回復(fù)我~
#2

大先生灬 回復(fù) willwei 提問者

在企業(yè)級開發(fā)里面,如果使用之前的那種,會導(dǎo)致代碼的冗余,而且如果一個表中需要判斷的字段過多寫起來會有很多,如果加上這個,你每次使用的時候就沒必要一個一個的去判斷非空等等,這樣在你每次使用新的model時只需要加上這樣的注解,可以大大的減少您的代碼量
2019-01-31 回復(fù) 有任何疑惑可以回復(fù)我~
#3

火鳳 回復(fù) willwei 提問者

springboot本身就引入了hibernate-validator
2019-03-02 回復(fù) 有任何疑惑可以回復(fù)我~
#4

慕容6363201 回復(fù) willwei 提問者

一方面 spring-boot-starter-web 中已經(jīng)包含了 hibernate-validator 校驗包,因為 hibernate-validator 是經(jīng)過 bean validation 認(rèn)證過的對 bean validation api 的實現(xiàn),因此你會覺得從 pom 中去掉了 hibernate-validator 以后代碼一樣能運(yùn)行。
2019-06-12 回復(fù) 有任何疑惑可以回復(fù)我~
#5

慕容6363201 回復(fù) willwei 提問者

另一方面老師也說了 javax.validation 是 javax 內(nèi)部實現(xiàn)的一套 validator 的接口并且能以 annotation 的方式來做對應(yīng)的校驗,而 hibernate-validator 則是對這套接口規(guī)范的實現(xiàn),因為項目中已經(jīng)引入了 hibernate-validator 的依賴,通過 Validation.buildDefaultValidatorFactory().getValidator() 就能獲得由 hibernate-validator 實現(xiàn)的 validator
2019-06-12 回復(fù) 有任何疑惑可以回復(fù)我~
查看2條回復(fù)

舉報

0/150
提交
取消

為什么要引入hibernate-validator

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號