




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第SpringBootyaml語(yǔ)法與JRS303校驗(yàn)超詳細(xì)講解目錄基本要點(diǎn)1、properties和yaml文件2、給屬性賦值的幾種方式3、JRS303校驗(yàn)
基本要點(diǎn)
1、properties和yaml文件
properties文件中的配置只支持鍵值對(duì)的形式,例如
server.port=8081
yaml文件可以支持鍵值對(duì)、對(duì)象、數(shù)組(對(duì)空格的要求極其嚴(yán)格)
name:decade
student:
name:decade
age:21
#對(duì)象的行內(nèi)寫法
student:{name:decade,age:21}
pets:
-cat
-dog
-pig
pets:[cat,dog,pig]
2、給屬性賦值的幾種方式
1)如果使用*.properties作為配置文件,給屬性賦值可以使用@Value
關(guān)鍵注解:@PropertySource+@Value
@PropertySource注解的value需要填關(guān)聯(lián)配置文件的路徑
注意:如果配置文件是perties,下面@ConfigurationProperties+@Component的注解也可以獲取配置文件中的配置項(xiàng)
首先我們需要將idea中配置文件的編碼格式改為utf8
然后我們定義一個(gè)實(shí)體類,使用EL表達(dá)式引用配置文件中的配置項(xiàng)
packagecom.decade.pojo;
importlombok.AllArgsConstructor;
importlombok.Data;
importlombok.NoArgsConstructor;
importorg.springframework.beans.factory.annotation.Value;
importorg.springframework.context.annotation.PropertySource;
importorg.springframework.stereotype.Component;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Component
@PropertySource("classpath:perties")
publicclassDog{
@Value("${}")
privateStringname;
}
2)使用yaml文件給屬性賦值
@Component:將類注冊(cè)成容器中的組件(使用configurationProperties的前提)
@ConfigurationProperties:注解可以將類中的屬性和配置文件中的進(jìn)行綁定
該注解的屬性prefix表示要在yaml文件中尋找以改屬性值為開頭的配置項(xiàng)進(jìn)行綁定,例如@ConfigurationProperties(prefix=people)
松散綁定:yaml文件中的屬性可以是下劃線連接,實(shí)體類中可以是駝峰命名
例如yaml中是last_name,實(shí)體類中是lastName
packagecom.decade.pojo;
importlombok.AllArgsConstructor;
importlombok.Data;
importlombok.NoArgsConstructor;
importperties.ConfigurationProperties;
importorg.springframework.stereotype.Component;
importjava.util.Date;
importjava.util.List;
importjava.util.Map;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Component
@ConfigurationProperties(prefix="people")
publicclassPeople{
privateStringname;
privateIntegerage;
privateBooleanisHappy;
privateDatebirth;
privateMapString,Objectmaps;
privateListObjectlist;
privateDogdog;
}
如果添加注解爆紅,那么需要在pom文件中添加一下下面這個(gè)依賴
這個(gè)依賴可以將我們的實(shí)體類與yaml文件關(guān)聯(lián)起來(lái),這樣我們?cè)趛aml文件中進(jìn)行配置配置項(xiàng)時(shí),可以自動(dòng)聯(lián)想實(shí)體類中的屬性
dependency
groupIdorg.springframework.boot/groupId
artifactIdspring-boot-configuration-processor/artifactId
optionaltrue/optional
/dependency
下面是2種方式的配置文件
最后我們寫一個(gè)測(cè)試類測(cè)試一下兩種方式是否導(dǎo)入成功
packagecom.decade;
importcom.decade.pojo.Dog;
importcom.decade.pojo.People;
importorg.junit.jupiter.api.Test;
importorg.springframework.beans.factory.annotation.Autowired;
importorg.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
classSpringbootStudyApplicationTests{
@Autowired
privatePeoplepeople;
@Autowired
privateDogdog;
@Test
voidcontextLoads(){
System.out.println(people);
System.out.println("========================");
System.out.println(dog);
}
運(yùn)行結(jié)果如下,驗(yàn)證通過(guò)
3、JRS303校驗(yàn)
在日常開發(fā)中,我們經(jīng)常會(huì)遇到需要對(duì)數(shù)據(jù)進(jìn)行校驗(yàn)的場(chǎng)景,例如非空校驗(yàn)和格式校驗(yàn)
這個(gè)時(shí)候,JRS303校驗(yàn)就能派上用場(chǎng),如果數(shù)據(jù)不滿足標(biāo)準(zhǔn),則會(huì)統(tǒng)一拋出異常,方便異常中心統(tǒng)一處理
首先,我們需要導(dǎo)入相關(guān)依賴
dependency
groupIdorg.springframework.boot/groupId
artifactIdspring-boot-starter-validation/artifactId
/dependency
接著,我們?cè)谛枰r?yàn)的屬性所屬的類上使用@Validated注解
在校驗(yàn)的字段上添加相關(guān)注解,常用注解如下
@Null驗(yàn)證對(duì)象是否為null
@NotNull驗(yàn)證對(duì)象是否不為null,無(wú)法查檢長(zhǎng)度為0的字符串
@NotBlank檢查約束字符串是不是Null還有被Trim的長(zhǎng)度是否大于0,只對(duì)字符串,且會(huì)去掉前后空格.
@NotEmpty檢查約束元素是否為NULL或者是EMPTY.
Booelan檢查
@AssertTrue驗(yàn)證Boolean對(duì)象是否為true
@AssertFalse驗(yàn)證Boolean對(duì)象是否為false
長(zhǎng)度檢查
@Size(min=,max=)驗(yàn)證對(duì)象(Array,Collection,Map,String)長(zhǎng)度是否在給定的范圍之內(nèi)
@Length(min=,max=)Validatesthattheannotatedstringisbetweenminandmaxincluded.
日期檢查
@Past驗(yàn)證Date和Calendar對(duì)象是否在當(dāng)前時(shí)間之前,驗(yàn)證成立的話被注釋的元素一定是一個(gè)過(guò)去的日期
@Future驗(yàn)證Date和Calendar對(duì)象是否在當(dāng)前時(shí)間之后,驗(yàn)證成立的話被注釋的元素一定是一個(gè)將來(lái)的日期
@Pattern驗(yàn)證String對(duì)象是否符合正則表達(dá)式的規(guī)則,被注釋的元素符合制定的正則表達(dá)式,regexp:正則表達(dá)式flags:指定Pattern.Flag的數(shù)組,表示正則表達(dá)式的相關(guān)選項(xiàng)。
數(shù)值檢查
建議使用在Stirng,Integer類型,不建議使用在int類型上,因?yàn)楸韱沃禐闀r(shí)無(wú)法轉(zhuǎn)換為int,但可以轉(zhuǎn)換為Stirng為,Integer為null
@Min驗(yàn)證Number和String對(duì)象是否大等于指定的值
@Max驗(yàn)證Number和String對(duì)象是否小等于指定的值
@DecimalMax被標(biāo)注的值必須不大于約束中指定的最大值.這個(gè)約束的參數(shù)是一個(gè)通過(guò)BigDecimal定義的最大值的字符串表示.小數(shù)存在精度
@DecimalMin被標(biāo)注的值必須不小于約束中指定的最小值.這個(gè)約束的參數(shù)是一個(gè)通過(guò)BigDecimal定義的最小值的字符串表示.小數(shù)存在精度
@Digits驗(yàn)證Number和String的構(gòu)成是否合法
@Digits(integer=,fraction=)驗(yàn)證字符串是否是符合指定格式的數(shù)字,interger指定整數(shù)精度,fraction指定小數(shù)精度。
@Range(min=,max=)被指定的元素必須在合適的范圍內(nèi)
@Range(min=10000,max=50000,message=range.bean.wage)
@Valid遞歸的對(duì)關(guān)聯(lián)對(duì)象進(jìn)行校驗(yàn),如果關(guān)聯(lián)對(duì)象是個(gè)集合或者數(shù)組,那么對(duì)其中的元素進(jìn)行遞歸校驗(yàn),如果是一個(gè)map,則對(duì)其中的值部分進(jìn)行校驗(yàn).(是否進(jìn)行遞歸驗(yàn)證)
@CreditCardNumber信用卡驗(yàn)證
@Email驗(yàn)證是否是郵件地址,如果為null,不進(jìn)行驗(yàn)證,算通過(guò)驗(yàn)證。
@ScriptAssert(lang=,script=,alias=)
@URL(p
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二次根式的性質(zhì)教學(xué)設(shè)計(jì)
- 醫(yī)療廢棄物處理的可持續(xù)發(fā)展路徑
- 區(qū)塊鏈技術(shù)在智能合約中的應(yīng)用實(shí)例
- 健康產(chǎn)業(yè)人才激勵(lì)機(jī)制研究報(bào)告
- 健康教育與生活方式改變的關(guān)聯(lián)性研究
- 周圍血管病的臨床護(hù)理
- 醫(yī)療健康數(shù)據(jù)隱私保護(hù)HIPAA的核心要點(diǎn)
- 2025年5月山西省晉中市高考適應(yīng)訓(xùn)練考試物理試卷(含答案)
- 企業(yè)出兌合同范例
- 1000元租房合同范例
- 2025年北京市東城區(qū)九年級(jí)初三一模英語(yǔ)試卷(含答案)
- 支教培訓(xùn)考試題及答案
- 2025-2030全球及中國(guó)游戲化行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 功夫茶泡茶技巧
- 2025年高中學(xué)業(yè)水平考試政治知識(shí)點(diǎn)歸納總結(jié)(復(fù)習(xí)必背)
- 中央2025年國(guó)家民委直屬事業(yè)單位招聘48人筆試歷年參考題庫(kù)附帶答案詳解
- 2025年全國(guó)國(guó)家版圖知識(shí)競(jìng)賽試題題庫(kù)
- 魔鏡洞察-數(shù)字解密 藥食同源生意下最香的成分與賽道終版
- 十一學(xué)校小升初入學(xué)測(cè)試數(shù)學(xué)真題及詳細(xì)解答
- 2025上半年廣西現(xiàn)代物流集團(tuán)社會(huì)招聘校園招聘149人筆試參考題庫(kù)附帶答案詳解
- 出售東西合同樣本
評(píng)論
0/150
提交評(píng)論