Spring Boot มีไฟล์การกำหนดค่าที่ใช้กันทั่วไปสองไฟล์คือไฟล์คุณสมบัติและไฟล์ YML ฟังก์ชั่นของพวกเขาคือการแก้ไขค่าเริ่มต้นของการกำหนดค่าอัตโนมัติของสปริงบูต เมื่อเปรียบเทียบกับไฟล์คุณสมบัติไฟล์ YML มีอายุน้อยกว่าและมีข้อผิดพลาดมากมาย อาจกล่าวได้ว่า Xiao เขาประสบความสำเร็จและล้มเหลวเซียวเขา YML กำหนดความสัมพันธ์ตามลำดับชั้นผ่านช่องว่างซึ่งเป็นโครงสร้างไฟล์การกำหนดค่าและชัดเจน แต่มันจะทำลายความสัมพันธ์ตามลำดับชั้นเนื่องจากช่องว่างที่ไม่มีนัยสำคัญ บทนี้มุ่งเน้นไปที่ไวยากรณ์ของ YML และรับค่าจากไฟล์การกำหนดค่า รออะไรอยู่? มาศึกษาอย่างรวดเร็ว!
เทคโนโลยี: Yaml, คุณสมบัติคุณสมบัติ, การใช้การกำหนดค่า properties และคำอธิบายประกอบค่า, การใช้ตัวยึดไฟล์การกำหนดค่า
หมายเหตุ: บทนี้มุ่งเน้นไปที่ไวยากรณ์ของ YAML และการใช้คำอธิบายประกอบการกำหนดค่า properties โปรดย้ายไปที่ GitHub เพื่อทดสอบรหัสและรหัสที่สมบูรณ์ เพื่อนที่ชอบมันสามารถคลิกที่ดาว
ซอร์สโค้ด: https://github.com/itdragonblog/daydayup/tree/master/springboot/spring-boot-yml
โครงสร้างสารไดเรกทอรี:
1. บทนำสู่ Yaml
YML เป็นภาษาในภาษา Yaml (Yaml Ain't Markup) ภาษาซึ่งเป็นศูนย์ข้อมูลและเหมาะสำหรับไฟล์การกำหนดค่ามากกว่า JSON, XML ฯลฯ
เมื่อเปรียบเทียบกับ XML, YML มีรหัสที่มีโครงสร้างน้อยกว่าทำให้ข้อมูลตรงและชัดเจนมากขึ้นอย่างรวดเร็ว
แล้ว YML และ JSON ล่ะ? ไม่มีใครดีหรือไม่ดีคนที่เหมาะสมที่สุด ไวยากรณ์ของ YML นั้นสง่างามกว่า JSON พร้อมคำอธิบายประกอบมาตรฐานมากขึ้นและเหมาะสำหรับไฟล์การกำหนดค่า ในฐานะที่เป็นรูปแบบการแลกเปลี่ยนเครื่อง JSON นั้นแข็งแกร่งกว่า YML และเหมาะสำหรับการแลกเปลี่ยนข้อมูลสำหรับการโทร API
1) Yaml ไวยากรณ์
ควบคุมความสัมพันธ์แบบลำดับชั้นโดยระดับการเยื้องของช่องว่าง จำนวนช่องว่างไม่สำคัญตราบใดที่ช่องว่างทางด้านซ้ายอยู่ในแนวเดียวกันพวกเขาจะถือว่าอยู่ในระดับเดียวกัน โปรดทราบว่าไม่สามารถใช้แท็บแทนช่องว่างได้ และตัวพิมพ์ใหญ่ รองรับโครงสร้างข้อมูลสามประการ: ค่าตัวอักษรวัตถุและอาร์เรย์และยังรองรับโครงสร้างคอมโพสิต
ค่าตัวอักษร: สตริง, ประเภทบูลีน, ค่าตัวเลข, วันที่ สตริงจะไม่ได้รับการยกมาตามค่าเริ่มต้นและคำพูดเดียวจะหลบหนีอักขระพิเศษ รูปแบบวันที่รองรับ yyyy/mm/dd hh: mm: ss
วัตถุ: ประกอบด้วยคู่คีย์-ค่าข้อมูลในรูปแบบของคีย์: ค่า (พื้นที่) พื้นที่หลังจากลำไส้ใหญ่เป็นสิ่งจำเป็น คู่คีย์-ค่าแต่ละชุดจะมีหนึ่งบรรทัดและระดับของการเยื้องจะต้องสอดคล้องกัน นอกจากนี้คุณยังสามารถใช้วิธีการเขียนแบบอินไลน์: {k1: v1, .... kn: vn}
อาร์เรย์: ประกอบด้วยข้อมูลที่มีรูปแบบของค่า -(พื้นที่) จำเป็นต้องมีช่องว่างด้านหลังเส้นแนวนอนสั้น ชุดข้อมูลแต่ละชุดมีหนึ่งบรรทัดและระดับของการเยื้องจะต้องสอดคล้องกัน นอกจากนี้คุณยังสามารถใช้วิธีการเขียนในบรรทัด: [1,2, ... n]
โครงสร้างคอมโพสิต: การรวมกันของโครงสร้างข้อมูลสามประการข้างต้น
ii) การประยุกต์ใช้ Yaml
สร้างแอปพลิเคชันไฟล์การกำหนดค่าสปริงบูตทั่วโลกและกำหนดค่าพารามิเตอร์คุณสมบัติ ส่วนใหญ่มีสตริง, สตริงที่มีอักขระพิเศษ, ประเภทบูลีน, ค่า, คอลเลกชัน, คอลเลกชันในบรรทัด, วัตถุในบรรทัดและวัตถุคอลเลกชัน
YAML: STR: สตริงสามารถเป็นโดยไม่มีคำพูดพิเศษ: "คำคมสองเท่าออกโดยตรง /n อักขระพิเศษ" พิเศษ 2: 'คำพูดเดียวสามารถหลบหนี /n ตัวละครพิเศษ' ธง: เท็จ NUM: 666 DNUM: 88.88 รายการ: - หนึ่ง - สอง - สองชุด: [1,2,2,3] แผนที่: {K1: V1, K2: V2} เงินเดือน itdragonblog: 18888.88สร้างคลาสเอนทิตี yamlentity.java รับค่าคุณสมบัติในไฟล์การกำหนดค่ารับค่าที่ระบุในไฟล์การกำหนดค่าโดยการเพิ่มความหมาย @configurationProperties และฉีดลงในคลาสเอนทิตี โปรดดูวิธีการทดสอบเฉพาะและหลักการของการได้รับค่า!
นำเข้า org.springframework.boot.context.properties.configurationProperties นำเข้า org.springframework.stereotype.component; นำเข้า java.util.list; นำเข้า java.util.map; (พื้นที่) ค่า * 2. จำนวนช่องว่างทางด้านซ้ายของพารามิเตอร์แต่ละบรรทัดจะกำหนดระดับของพารามิเตอร์และไม่ป้อนแบบสุ่ม */@component@configurationProperties (prefix = "yaml") คลาสสาธารณะ yamlentity {// ค่าตัวอักษร, สตริง, บูลีน, สตริงส่วนตัวเชิงตัวเลข; // สตริงปกติสตริงส่วนตัวพิเศษ; // Escape Special String Private Private Specialstr2; // output String Special String ธงบูลีนส่วนตัว; // บูลีนประเภทจำนวนเต็มส่วนตัว NUM; // จำนวนเต็มส่วนตัวสอง dnum; // ทศนิยม // อาร์เรย์, รายการและชุด, สองวิธีในการเขียน: ค่าแรก: - ค่าพื้นที่แต่ละค่าใช้งานหนึ่งแถวและจำเป็นต้องมีการเยื้องและจัดตำแหน่ง; ข้อที่สอง: [1,2, ... n] รายการส่วนตัวในการเขียนรายการส่วนตัว <Ojrop> รายการ; // รายการ Set Private Set ซ้ำ <Object> ตั้งค่า; // set ไม่สามารถทำซ้ำชุด // map และคลาสเอนทิตีสองวิธีในการเขียน: ค่าแรก: ค่าพื้นที่คีย์แต่ละค่ามีหนึ่งบรรทัดและจำเป็นต้องมีการเยื้องและจัดตำแหน่ง; ที่สอง: {คีย์: ค่า, ... } การเขียนแผนที่ส่วนตัว <สตริง, วัตถุ> แผนที่; // MAP KV รายการส่วนตัว <Positive> ตำแหน่ง; // โครงสร้างสารประกอบ, วัตถุคอลเลกชัน // omit getter, setter, วิธีการ toString}3) สรุป YML
1. สตริงสามารถทำได้โดยไม่มีเครื่องหมายคำพูด หากมีการเพิ่มคำพูดสองครั้งอักขระพิเศษจะถูกส่งออก หากไม่มีการเพิ่มคำพูดเดียวอักขระพิเศษจะถูกหลบหนี
2. สำหรับประเภทอาร์เรย์จะต้องมีช่องว่างด้านหลังเส้นแนวนอนสั้น สำหรับประเภทวัตถุจะต้องมีช่องว่างด้านหลังลำไส้ใหญ่
3. Yaml ควบคุมความสัมพันธ์แบบลำดับชั้นตามระดับของการเยื้องพื้นที่ แต่ไม่สามารถใช้คีย์แท็บแทนช่องว่างได้และเป็นตัวพิมพ์เล็ก
4. จะทำให้โปรแกรมเมอร์ขัดข้องได้อย่างไร? เพิ่มช่องว่างสองสามช่องให้กับไฟล์ YML! (〃> dish <)
2. ความรู้เบื้องต้นเกี่ยวกับคุณสมบัติ
ทุกคนมักจะใช้ไฟล์คุณสมบัติดังนั้นฉันจะแนะนำสั้น ๆ ที่นี่ โครงสร้างไวยากรณ์ของมันเป็นเช่น: key = value ให้ความสนใจกับปัญหาของรหัสภาษาจีนที่อ่านไม่ออกและจำเป็นต้องถูกแปลงเป็น ASCII รายละเอียดมีดังนี้:
userInfo.Account = itDragonBlogUserInfo.age = 25UserInfo.active = TrueUserInfo.Created-Date = 2018/03/31 16: 54: 30USERINFO.MAP.K1 = V1USERINFO.MAP.K2 = V2USERINFO.LIST = ONE userinfo.position.salary = 19999.99
ใช้ค่าจากไฟล์การกำหนดค่าและฉีดเข้าไปในคลาสเอนทิตีซึ่งเหมือนกับ Yaml
นำเข้า org.springframework.boot.context.properties.configurationProperties นำเข้า org.springframework.stereotype.Component; นำเข้า java.util.date; นำเข้า Java.util.list; ค่าที่ระบุในไฟล์กำหนดค่า (ค่าพบได้ผ่านคำนำหน้า)*/@component@configurationProperties (คำนำหน้า = "userInfo") คลาสสาธารณะ userInfo {บัญชีสตริงส่วนตัว; อายุจำนวนเต็มส่วนตัว บูลีนส่วนตัวใช้งานอยู่ วันที่ส่วนตัวสร้างเดต; แผนที่ส่วนตัว <สตริงวัตถุ> แผนที่; รายการส่วนตัว <Ojrop> รายการ; ตำแหน่งส่วนตัว; // ละเว้น getter, setter, วิธีการ toString}3. ค่าไฟล์การกำหนดค่า
Spring Boot ได้รับคุณสมบัติจากไฟล์การกำหนดค่าผ่านคำอธิบายประกอบการกำหนดค่า properties จากตัวอย่างด้านบนเราจะเห็นว่าคำอธิบายประกอบการกำหนดค่า properties สามารถระบุข้อมูลที่ต้องนำเข้าเป็นแบทช์โดยการตั้งค่าคำนำหน้า รองรับการได้รับข้อมูลที่ซับซ้อนเช่นตัวอักษรคอลเลกชันแผนที่วัตถุ ฯลฯ มีอะไรอีกบ้างเกี่ยวกับคำอธิบายประกอบการกำหนดค่า properties หรือไม่? อะไรคือความแตกต่างระหว่างคำอธิบายประกอบมูลค่าของฤดูใบไม้ผลิ? ด้วยคำถามเหล่านี้ในใจเรามาอ่านต่อไป (๑ • ̀ㅂ • ́) و✧
a) ข้อดีและข้อเสียของการกำหนดค่าและมูลค่า
ข้อดีและข้อเสียของคำอธิบายประกอบการกำหนดค่า properties
1. คุณสามารถแบทช์คุณสมบัติการฉีดได้จากไฟล์การกำหนดค่า
2. รองรับการได้รับชนิดข้อมูลที่ซับซ้อน
3. ข้อกำหนดสำหรับการจับคู่ชื่อแอตทริบิวต์อยู่ในระดับต่ำเช่นชื่อผู้ใช้, user_name, ชื่อผู้ใช้และ user_name สามารถรับค่าทั้งหมดได้
4. สนับสนุนการตรวจสอบข้อมูล JSR303 ของ Java;
5. ข้อเสียคือมันไม่สนับสนุนการแสดงออกของ Spel ที่ทรงพลัง
ข้อดีและข้อเสียของคำอธิบายประกอบค่าเป็นสิ่งที่ตรงกันข้าม สามารถกำหนดค่าค่าการฉีดได้ทีละตัวเท่านั้น ไม่รองรับชนิดข้อมูลที่ซับซ้อนเช่นอาร์เรย์และคอลเลกชัน ไม่สนับสนุนการตรวจสอบข้อมูล มีข้อกำหนดที่เข้มงวดสำหรับการจับคู่ชื่อคุณสมบัติ คุณสมบัติที่ใหญ่ที่สุดคือรองรับการแสดงออกของ Spel ทำให้ฟังก์ชั่นที่สมบูรณ์ยิ่งขึ้น
2) @ConfigurationProperties คำอธิบายรายละเอียด
ขั้นตอนที่ 1: การนำเข้าการพึ่งพา ในการใช้คำอธิบายประกอบการกำหนดค่า properties คุณจะต้องนำเข้าโปรเซสเซอร์การกำหนดค่าสปริงแบบพึ่งพาการกำหนดค่าการกำหนดค่า
ขั้นตอนที่ 2: กำหนดค่าข้อมูล ในไฟล์การกำหนดค่า Application.yml กำหนดค่าพารามิเตอร์แอตทริบิวต์นำหน้าโดย itdragon และพารามิเตอร์มีค่าและอาร์เรย์ที่แท้จริงซึ่งใช้เพื่อตรวจสอบว่าความสามารถในการรับแอตทริบิวต์ที่ซับซ้อนหรือไม่
ขั้นตอนที่ 3: จับคู่ข้อมูล เพิ่มคำอธิบายประกอบการกำหนดค่า properties บนคลาสและตั้งค่าคุณสมบัติคำนำหน้าเป็น itdragon และเพิ่มคลาสนี้ลงในคอนเทนเนอร์ IOC ของ Spring
ขั้นตอนที่ 4: ตรวจสอบข้อมูล เพิ่มการตรวจสอบข้อมูลที่ผ่านการตรวจสอบความถูกต้องคำอธิบายประกอบเปิดใช้งานการตรวจสอบข้อมูลและทดสอบว่ารองรับการตรวจสอบข้อมูลหรือไม่
ขั้นตอนที่ 5: ทดสอบว่าคำอธิบายประกอบการกำหนดค่า properties รองรับการแสดงออกของ Spel หรือไม่
การนำเข้าการพึ่งพา: pom.xml เพิ่มการพึ่งพาตัวประมวลผลสปริง
<Ederency> <roupID> org.springframework.boot </groupId> <ratifactId> Spring-Boot-Configuration-Processor </artifactid>
ข้อมูลการกำหนดค่า: พารามิเตอร์คุณสมบัติการกำหนดค่า Application.yml, Nick-name ใช้เพื่อตัดสินการคลายของคุณสมบัติการจับคู่ หากเปลี่ยนเป็น nick_name คุณยังสามารถรับค่าได้
itdragon: nick-name: itdragonblog อีเมล: [email protected] iPhone: 1234567890 ความสามารถ: [java, SQL, html] created_date: 2018/03/31 15:27:30
จับคู่และตรวจสอบข้อมูล:
นำเข้า org.springframework.boot.context.properties.configurationProperties นำเข้า org.springframework.stereotype.component; นำเข้า org.springframework.validation.annotation.validated; java.util.list;/*** configurationProperties คำอธิบายประกอบคลาสไวยากรณ์* ขั้นตอนที่ 1: การนำเข้าพยากรณ์การตั้งค่าการกำหนดค่า-การกำหนดค่า * ขั้นตอนที่ 2: เพิ่มคลาสที่แก้ไขโดยคำอธิบายประกอบการกำหนดค่า properties ลงในคอนเทนเนอร์ IOC ของ Spring; * ขั้นตอนที่ 3: ตั้งค่าแอตทริบิวต์คำนำหน้าและระบุคำนำหน้าที่ต้องฉีด * ขั้นตอนที่ 4: เพิ่มคำอธิบายประกอบการตรวจสอบข้อมูลเพื่อเปิดใช้งานการตรวจสอบข้อมูล ** หมายเหตุ:* 1. ชื่อเล่นและสิ่งที่สร้างขึ้นในไฟล์กำหนดค่า YML และพารามิเตอร์ที่สอดคล้องกันคือตาข่ายและขีดเส้นใต้ตามลำดับใช้เพื่อทดสอบการคลายของชื่อแอตทริบิวต์การจับคู่* 2. การทดสอบอีเมลและ iPhone ที่รองรับการตรวจสอบข้อมูล JSR303* 3. การทดสอบความสามารถ "itdragon")@chalidatedpublic class configurationPropertiesentity {ชื่อเล่นสตริงส่วนตัว; // การแยกวิเคราะห์สำเร็จการสนับสนุนแอตทริบิวต์การจับคู่ที่หลวมอีเมลสตริงส่วนตัว; // @Email // การแยกวิเคราะห์ล้มเหลวและการตรวจสอบข้อมูลประสบความสำเร็จ: bindValidationException: ข้อผิดพลาดการตรวจสอบความถูกต้องของการตรวจสอบความถูกต้องในสตริงส่วนตัว iTdragon iPhone; รายการส่วนตัว <String> ความสามารถ; วันที่ส่วนตัวสร้างเดต; // การแยกวิเคราะห์สำเร็จสนับสนุนแอตทริบิวต์การจับคู่แบบหลวม // @ConfigurationProperties ("#{(1+2-3)/4*5}") ผู้ให้บริการสตริงส่วนตัว; // ข้อผิดพลาดทางไวยากรณ์ไม่รองรับการแสดงออกของ Spel: ไม่สามารถใช้ได้กับฟิลด์ // ละเว้น getter, setter, วิธีการ toString}3) รายละเอียด @Value
บล็อกก่อนหน้านี้ได้แนะนำการใช้คำอธิบายประกอบมูลค่าและนี่คือคำอธิบายสั้น ๆ
ขั้นตอนที่ 1: เพิ่มคำอธิบายประกอบค่าลงในแอตทริบิวต์และค่าการฉีดจากไฟล์กำหนดค่าผ่านพารามิเตอร์การตั้งค่า $ {};
ขั้นตอนที่ 2: แก้ไขค่าพารามิเตอร์ใน $ {itdragon.ceatred_date} และเปลี่ยนเป็น $ {itdragon.ceatreddate} เพื่อทดสอบว่าการแยกวิเคราะห์จะสำเร็จหรือไม่
ขั้นตอนที่ 3: เพิ่มคำอธิบายประกอบการตรวจสอบข้อมูลที่ผ่านการตรวจสอบแล้วเปิดใช้งานการตรวจสอบข้อมูลและทดสอบว่าสนับสนุนการตรวจสอบข้อมูลหรือไม่
ขั้นตอนที่ 4: ทดสอบว่าคำอธิบายประกอบค่ารองรับการแสดงออกของ Spel หรือไม่
นำเข้า org.springframework.beans.factory.annotation.value; นำเข้า org.springframework.stereotype.component; นำเข้า org.springframework.validation.annotation.validated; นำเข้า Javax.validation.contraints.email; คำอธิบายประกอบคลาสไวยากรณ์* ขั้นตอนที่ 1: เพิ่มพารามิเตอร์การฉีดค่าคำอธิบายประกอบในแอตทริบิวต์* ขั้นตอนที่ 2: เพิ่มคลาสที่แก้ไขโดยคำอธิบายประกอบค่าไปยังคอนเทนเนอร์ IOC สปริง * ขั้นตอนที่ 3: เพิ่มคำอธิบายประกอบการตรวจสอบข้อมูลเพื่อตรวจสอบว่ารองรับการตรวจสอบข้อมูลหรือไม่ * * หมายเหตุคะแนน: * 1. ชื่อเล่นและสิ่งที่สร้างขึ้นในไฟล์กำหนดค่า YML พารามิเตอร์ที่สอดคล้องกันคือตาข่ายและขีดเส้นใต้ตามลำดับใช้เพื่อทดสอบการคลายของชื่อแอตทริบิวต์การจับคู่ * 2. การทดสอบอีเมลและ iPhone ที่สนับสนุนการกำหนดค่า JSR303 ไฟล์. * 2. เนื่องจากเป็นการเพิ่มคำอธิบายประกอบการตรวจสอบกล่องจดหมายบน iPhone คุณยังสามารถผ่านการทดสอบได้ * 3. ไม่รองรับโครงสร้างข้อมูลที่ซับซ้อนและข้อผิดพลาดที่พร้อมท์นั้นเหมือนกับโครงสร้างแรก: unlueLargumentException: ไม่สามารถแก้ไขตัวยึดสถานที่ 'itdragon.Alibilities' ในค่า "$ {itdragon.abilities}" */@component@chalidatedpublic class @Value ("$ {itdragon.email}") อีเมลสตริงส่วนตัว; @Email @Value ("$ {itdragon.iphone}") // การแยกวิเคราะห์ประสบความสำเร็จและการตรวจสอบข้อมูลไม่รองรับสตริงส่วนตัว iphone; // @value ("$ {itdragon.eatreddate}") // การแยกวิเคราะห์ // ข้อผิดพลาดในการแยกวิเคราะห์ไม่สนับสนุนคุณสมบัติการจับคู่แบบหลวมและจะต้องเป็นวันที่ส่วนตัวที่สอดคล้องกันอย่างเคร่งครัด // ด้านที่ทรงพลังของคำอธิบายประกอบค่า: รองรับ Expression spel @Value ("#{(1+2-3)/4*5}") // arithmetic Operation Private String Operator; @Value ("#{1> 2 || 2 <= 3}") // การดำเนินการเชิงสัมพันธ์แบบบูลีนส่วนตัว @Value ("#{SystemProperties ['java.version']}") // การกำหนดค่าระบบ: OS.Name Private String SystemProperties; @Value ("#{t (java.lang.math) .abs (-18)}") // นิพจน์สตริงส่วนตัว mapexpression; // ละเว้น getter, setter, วิธีการ toString}4) สรุปค่าไฟล์กำหนดค่า
1. คำอธิบายประกอบการกำหนดค่า properties รองรับการฉีดแบทช์ในขณะที่คำอธิบายประกอบค่าเหมาะสำหรับการฉีดเดี่ยว
2. คำอธิบายประกอบการกำหนดค่า properties สนับสนุนการตรวจสอบข้อมูลในขณะที่คำอธิบายประกอบค่าไม่ได้;
3. คำอธิบายประกอบการกำหนดค่า properties สนับสนุนคุณสมบัติการจับคู่แบบหลวมในขณะที่คำอธิบายประกอบค่าจะต้องตรงกับคุณสมบัติอย่างเคร่งครัด
4. การกำหนดค่า properties ไม่รองรับการแสดงออก Spel ที่มีประสิทธิภาพ แต่ค่ารองรับพวกเขา;
4. ตัวยึดไฟล์กำหนดค่า
ตัวยึดตำแหน่งและตัวเลขสุ่มค่อนข้างง่ายดังนั้นฉันจะโพสต์รหัสที่นี่โดยตรง สิ่งที่ควรสังเกตคือ:
1. มูลค่าของตัวยึดตำแหน่งจะต้องเป็นเส้นทางเต็มรูปแบบ
2. ตั้งค่าเริ่มต้นของตัวยึดตำแหน่งจะต้องไม่มีที่ว่างหลังจากลำไส้ใหญ่
Ran: # คำนำหน้าที่นี่ไม่สามารถสุ่ม, ran-value: $ {random.value} ran-int: $ {random.int} ran-long: $ {random.long} ran-int-num: $ {random.int (10)} ran-int-range: $ {สุ่ม ที่นี่และกุญแจคือเส้นทางเต็ม} นำเข้า org.springframework.boot.context.properties.configurationProperties นำเข้า org.springframework.stereotype.Component;/*** หมายเลขสุ่ม // สุ่มสร้างสตริงจำนวนเต็มส่วนตัว Ranint; // แบบสุ่มสร้าง Ranlong Long Private Integer // สุ่มสร้างจำนวนเต็มจำนวนเต็มจำนวนเต็มยาว Ranintnum; // แบบสุ่มสร้างจำนวนเต็มส่วนตัวภายในระยะที่ระบุจำนวนเต็ม ranIntrange; // แบบสุ่มสร้างสตริงส่วนตัวจำนวนเต็ม ranplaceholder; // placeholder // omit getter, setter, วิธีการทดสอบ toString Eruntive: @runwith (SpringRunner.Class) @autowired Yamlentity ส่วนตัว Yamlentity; @autowired Private ConfigurationPropertiesEntity ConfigurationPropertiesEntity; @autowired ValueEntity ValueEntity; @Autowired Private Randomentity สุ่ม; @Test Public Void Contextloads () {// System.out.println ("Yaml Grammar:" + yamlentity); // system.out.println ("userinfo:" + userinfo); // system.out.println ("การกำหนดค่า grammar:" + VangeEntity); System.out.println ("สุ่มไวยากรณ์:" + สุ่ม); -5. สรุป
1. สปริงบูตรองรับไฟล์การกำหนดค่าในสองรูปแบบซึ่งโครงสร้างข้อมูลของ YAML นั้นชัดเจนกว่าคุณสมบัติ
2. Yaml เป็นภาษาที่ใช้เป็นพิเศษในการเขียนไฟล์การกำหนดค่าซึ่งมีความรัดกุมและทรงพลังมาก
3. Yaml มีข้อกำหนดที่เข้มงวดเกี่ยวกับพื้นที่และไม่สามารถแทนที่ด้วยปุ่ม TAB ได้
4. Yaml กำหนดระดับตามระดับของการเยื้องพื้นที่โดยมีช่องว่างตามลำไส้ใหญ่และช่องว่างตามเส้นแนวนอนสั้น
5. คำอธิบายประกอบการกำหนดค่า properties เหมาะสำหรับการฉีดแบทช์ของคุณสมบัติในไฟล์การกำหนดค่าและคำอธิบายประกอบค่าเหมาะสำหรับการได้รับรายการในไฟล์การกำหนดค่า
6. คำอธิบายประกอบการกำหนดค่า properties สนับสนุนการตรวจสอบข้อมูลเพื่อให้ได้ข้อมูลที่ซับซ้อนและคำอธิบายประกอบที่มีค่ารองรับการแสดงออกของ Spel
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น