最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

為什么要引入hibernate-validator

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

正在回答

1 回答

課程例講解的很清楚了,在沒有引入hibernate-validator之前,我們使用判空的方式來驗(yàn)證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是一個(gè)驗(yàn)證框架,可以大大簡(jiǎn)化驗(yàn)證的過程,增加了驗(yàn)證的細(xì)節(jié)

首先我們對(duì)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ī)號(hào)不能為空")
private?String?telephone;

private?String?registreMode;

private?String?thirdPartyId;

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

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

驗(yàn)證代碼就簡(jiǎn)化為:

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

可以參考如下文章:

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



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

willwei 提問者

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

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

在企業(yè)級(jí)開發(fā)里面,如果使用之前的那種,會(huì)導(dǎo)致代碼的冗余,而且如果一個(gè)表中需要判斷的字段過多寫起來會(huì)有很多,如果加上這個(gè),你每次使用的時(shí)候就沒必要一個(gè)一個(gè)的去判斷非空等等,這樣在你每次使用新的model時(shí)只需要加上這樣的注解,可以大大的減少您的代碼量
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 校驗(yàn)包,因?yàn)?hibernate-validator 是經(jīng)過 bean validation 認(rèn)證過的對(duì) bean validation api 的實(shí)現(xiàn),因此你會(huì)覺得從 pom 中去掉了 hibernate-validator 以后代碼一樣能運(yùn)行。
2019-06-12 回復(fù) 有任何疑惑可以回復(fù)我~
#5

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

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

舉報(bào)

0/150
提交
取消

為什么要引入hibernate-validator

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

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

幫助反饋 APP下載

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

公眾號(hào)

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