วันนี้ฉันกำลังแบ่งปันข้อมูลการกำหนดค่าที่กำหนดเองกับคุณ เมื่อเร็ว ๆ นี้มีแผนที่จะเขียนบล็อกและฉันจะเขียนบทความเกี่ยวกับ Springboot และ SpringCloud เนื่องจากสปริงโบทคาดว่าจะมีหลายบทดังนั้นบทความบนคลาวด์จะต้องรอจนกว่าจะสามารถเขียนได้นาน เหตุผลในการแบ่งปันบทความทั้งสองนี้เป็นหลักเพื่ออำนวยความสะดวกในการค้นหาข้อมูลของคุณและมีบทบาทที่สะดวกสำหรับเพื่อนที่จะใช้
•@ค่าแท็กการอ่าน (โหนดของ application.yml สามารถอ่านได้โดยตรงโดยค่าเริ่มต้น)
•แอปพลิเคชันการแมปเอนทิตีโหนด
• Entity Maps Nodes สำหรับไฟล์การกำหนดค่าที่กำหนดเอง
•เอนทิตีแมปค่าของโหนดหลายระดับ
@Value Tag Reading (โหนดของ application.yml สามารถอ่านได้โดยตรงโดยค่าเริ่มต้น)
ขั้นแรกให้ปรับแต่งข้อมูลโหนดต่อไปนี้ในไฟล์กำหนดค่า Application.yml เริ่มต้น:
Shenniu: ชื่อ: Shenniu 003
จากนั้นค่าแอตทริบิวต์จะได้รับโดยตรงผ่านแท็ก @Value เพื่อแสดงข้อมูลที่ดีขึ้น A /Conf /Name Interface จะถูกกำหนดไว้ในอินเทอร์เฟซ:
@Value ("$ {shenniu.name}") ชื่อสตริงส่วนตัว; @getMapping ("/conf/defname") สตริงสาธารณะ getDefName () {return this.name; -หลังจากทำงานแล้วเอฟเฟกต์มีดังนี้:
แอปพลิเคชันการแมปเอนทิตีโหนด
ในการแมปค่าไฟล์กำหนดค่าเริ่มต้นด้วยคลาสเอนทิตีคุณจะต้องเพิ่มคำนำหน้าชื่อคุณสมบัติเท่านั้น แน่นอนว่านี่เป็นเพียงคุณสมบัติในไฟล์ Application.yml เริ่มต้นเท่านั้น:
@configuration@configurationProperties (prefix = "shenniu") คลาสสาธารณะ Shenniuconf {ชื่อสตริงส่วนตัว; สตริงสาธารณะ getName () {ชื่อคืน; } โมฆะสาธารณะ setName (ชื่อสตริง) {this.name = name; } URL URL ส่วนตัว; URL สาธารณะ geturl () {return url; } โมฆะสาธารณะ seturl (URL url) {this.url = url; } สตริงส่วนตัว des; สตริงสาธารณะ getDes () {return des; } โมฆะสาธารณะ setDes (String des) {this.des = des; } URL คลาสสแตติกสาธารณะ {Private String Blogurl; Public String getBlogurl () {return blogurl; } โมฆะสาธารณะ setBlogUrl (สตริง BlogUrl) {this.blogurl = blogurl; -ฉันได้เพิ่มคุณสมบัติหลายอย่างในคลาสเอนทิตีเพื่อความสะดวกในการทดสอบในภายหลัง ในการกำหนดค่า application.yml คุณจะต้องเพิ่มแท็ก @configurationProperties (คำนำหน้า = "shenniu") แท็กและค่าของคำนำหน้าสอดคล้องกับคำนำหน้าของแอตทริบิวต์ไฟล์กำหนดค่าที่กำหนดเอง ที่นี่อินเทอร์เฟซ /conf /ชื่อถูกเพิ่มเพื่อส่งออกค่าของวัตถุที่แมป:
@autowired ส่วนตัว Shenniuconf Shenniuconf; @getMapping ("/conf/name") สตริงสาธารณะ getName () {return shenniuconf.getName (); -เอฟเฟกต์เดียวกันกับ @Values คำอธิบายประกอบได้รับซึ่งหมายความว่าแอตทริบิวต์ที่กำหนดเองของเอนทิตีและไฟล์การกำหนดค่าได้รับการจับคู่สำเร็จและชื่อแอตทริบิวต์เอนทิตีหลักควรสอดคล้องกับชื่อโหนดไฟล์การกำหนดค่า;
Entity Maps Nodes สำหรับไฟล์การกำหนดค่าที่กำหนดเอง
มันง่ายมากที่จะอ่านค่าคุณสมบัติใน application.yml บางครั้งคุณต้องปรับแต่งไฟล์การกำหนดค่าของคุณเองเช่น my.properties ของฉันที่นี่และเนื้อหาไฟล์มีดังนี้:
shenniu.des = ฉันรักแม่บ้านของฉัน shenniu.url.blogurl = http: //www.a.com
เอนทิตีการแมปยังคงใช้ด้านบน แต่คำอธิบายประกอบ @PropertySource ("classpath: my.properties") จะต้องเพิ่มลงในเอนทิตีเพื่อแสดงแหล่งที่มาของไฟล์ที่กำหนดเองและคำนำหน้าจำเป็นต้องระบุคำนำหน้าโหนด; เราเพิ่มอินเตอร์เฟสการแสดงผลต่อไปนี้:
@autowired ส่วนตัว Shenniuconf Shenniuconf; @getMapping ("/conf/des") สตริงสาธารณะ getDes () {return shenniuconf.getdes (); -เอนทิตีแผนที่ค่าของโหนดหลายระดับ
โดยปกติแล้วโหนดการกำหนดค่าที่กำหนดเองมีความสัมพันธ์แบบลำดับชั้นดังนั้นเอนทิตีของเราจะได้รับค่าแอตทริบิวต์ในระดับต่าง ๆ ได้อย่างไร ในความเป็นจริงมันจะต้องมีการแสดงออกผ่านความสัมพันธ์แบบลำดับชั้นของชั้นเรียนในคลาสเอนทิตีเช่นแอตทริบิวต์ระดับเอนทิตี URL ในเอนทิตี Shenniuconf ด้านบน;
นี่คืออินเทอร์เฟซทดสอบ:
@autowired ส่วนตัว Shenniuconf Shenniuconf; @getMapping ("/conf/myconf") สาธารณะ shenniuconf getBlogurl () {return shenniuconf; -หากไม่มีอะไรเกิดขึ้นที่ไม่คาดคิดคุณจะได้รับผลลัพธ์ต่อไปนี้:
ที่อยู่ GIT: https://github.com/shenniuboxing3 Nuget Publishing แพ็คเกจ: https://www.nuget.org/profiles/shenniuboxing3
สรุป
ด้านบนเป็นวิธีการของ Springboot อ่านโหนดไฟล์กำหนดค่าที่กำหนดเองที่แนะนำโดยตัวแก้ไข ฉันหวังว่ามันจะเป็นประโยชน์กับคุณ หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉัน บรรณาธิการจะตอบกลับคุณทันเวลา!