โครงการ Springboot อ่านแอปพลิเคชันไฟล์กำหนดค่าตามค่าเริ่มต้น หากคุณต้องการปรับแต่งไฟล์คุณสมบัติวิธีการอ่านได้อย่างไร
1. สร้างไฟล์. properties ใหม่ในทรัพยากร
สร้างโฟลเดอร์กำหนดค่าใหม่ในไดเรกทอรีทรัพยากรจากนั้นสร้างไฟล์. properties ใหม่และวางไว้ในโฟลเดอร์นี้ ดังที่แสดงในระยะไกล properties ในรูป
2. การเขียนไฟล์กำหนดค่า
Remote.uploadFilesUrl =/resource/files/remote.uploadpicurl =/resource/pic/
3. สร้างคลาสการกำหนดค่าใหม่ remoteproperties.java
@configuration@configurationProperties (prefix = "remote", negriallunkNownfields = false) @PropertySource ("classpath: config/remote.properties")@data@componentPublic คลาส remoteProperties สตริงส่วนตัว uploadpicurl;}ใน
@Configuration ระบุว่านี่เป็นคลาสการกำหนดค่า
@ConfigurationProperties (คำนำหน้า = "รีโมต", เพิกเฉยต่อไม่ได้บันทึกข้อมูล = เท็จ) คำอธิบายประกอบนี้ใช้เพื่อผูกคุณสมบัติ คำนำหน้าใช้เพื่อเลือกคำนำหน้าของคุณสมบัตินั่นคือ "ระยะไกล" ในไฟล์ระยะไกล properties เพิกเฉยต่อฟีลด์ฟีลด์ใช้เพื่อบอกสปริงบูตให้โยนข้อยกเว้นเมื่อคุณสมบัติไม่สามารถจับคู่โดเมนที่ประกาศได้
@PropertySource ("classpath: config/remote.properties") เส้นทางไฟล์การกำหนดค่า
@Data นี่คือคำอธิบายประกอบลอมบอกที่ใช้ในการสร้างวิธีการ getter & setter สำหรับรายละเอียดโปรดดูข้อมูลที่เกี่ยวข้องกับลอมบอก
@component ระบุว่าเป็นถั่ว
4. จะใช้อย่างไร?
คำอธิบายประกอบ enableConfigurationProperties (remoteProperties.class) บนตารางในชั้นเรียนที่วิธีที่คุณต้องการใช้ไฟล์การกำหนดค่าอยู่
และฉีดโดยอัตโนมัติ
@autowiredRemoteProperties RemoteProperties;
ใช้ remoteproperties.getUploadFilesUrl () ในวิธีการเพื่อรับเนื้อหาการกำหนดค่า
@EnableConFigurationProperties (remoteProperties.class) @RestControllerPublic คลาส testService {@autowired RemoteProperties RemoteProperties; การทดสอบโมฆะสาธารณะ () {string str = remoteproperties.getUploadFilesurl (); System.out.println (str); -ที่นี่ STR คือ "/ทรัพยากร/ไฟล์/" ในไฟล์การกำหนดค่า
PS: ลองดูสองวิธีในการอ่านไฟล์การกำหนดค่าการกำหนดค่าใน Spring-Boot
หากคุณเข้าใจเทคโนโลยีฤดูใบไม้ผลิคุณควรรู้แอปพลิเคชันของไฟล์การกำหนดค่าหลักของ Spring-Boot และแน่นอนว่าคุณสามารถใส่คำอธิบายประกอบข้อมูลของไฟล์การกำหนดค่าที่กำหนดเองได้
วิธีที่ Spring-Boot อ่านไฟล์การกำหนดค่า:
1. อ่านข้อมูลไฟล์การกำหนดค่าหลักของ application.properties
ไฟล์การกำหนดค่าหลักหมายถึงแอปพลิเคชันไฟล์การกำหนดค่าหรือแอปพลิเคชัน Application.yml ในไดเรกทอรีรูทของทรัพยากร มีสองวิธีในการอ่านไฟล์การกำหนดค่าทั้งสองนี้ซึ่งทั้งสองอย่างนั้นค่อนข้างง่าย
แอปพลิเคชันไฟล์การกำหนดค่าหลักเนื้อหาเนื้อหามีดังนี้:
test.msg = Hello World Springboot
วิธีที่ 1: ใช้วิธี @Value (ใช้กันทั่วไป)
แพ็คเกจ Solin.Controller; นำเข้า org.springframework.beans.factory.annotation.value; นำเข้า org.springframework.web.bind.annotation.requestmapping; นำเข้า org.springframework.web.bind.annotation.restcontroller; @RestController คลาสสาธารณะ WebController {@Value ("$ {test.msg}") สตริงส่วนตัว @RequestMapping ("/index1") String สาธารณะ index1 () {return "วิธี 1:"+msg; - หมายเหตุ: $ {} ของ @Value รวมอยู่ในชื่อคีย์ในไฟล์การกำหนดค่าหลัก การเพิ่ม @RestController ลงในคลาสคอนโทรลเลอร์หมายความว่ามุมมองทั้งหมดในคลาสนี้จะแสดงใน JSON ซึ่งคล้ายกับการเพิ่ม @ResponseBody ลงในวิธีการดู
เมื่อเยี่ยมชม: http: // localhost: 8088/index1 คุณจะได้รับ: "วิธีที่ 1: Hello World Springboot"
วิธีที่ 2: ใช้วิธีการสภาพแวดล้อม
แพ็คเกจ Solin.Controller; นำเข้า org.springframework.beans.factory.annotation.autowired; นำเข้า org.springframework.beans.factory.annotation.value; นำเข้า org.springframework.core.env.environment; นำเข้า org.springframework.web.bind.annotation.requestmapping; นำเข้า org.springframework.web.bind.annotation.restcontroller; @RestController คลาสสาธารณะ WebController {@AutoWired Environment Env env; @RequestMapping ("/index2") String Public String Index2 () {return "วิธี 2:"+env.getProperty ("test.msg"); - หมายเหตุ: วิธีนี้คือการใช้ EVNironment เพื่อทำการฉีดพึ่งพาให้เสร็จสมบูรณ์ เพิ่มคำอธิบายประกอบ @autowired ลงในสภาพแวดล้อมส่วนตัวตัวแปรที่สร้างขึ้น Env เพื่อให้การฉีดพึ่งพาการพึ่งพาเสร็จสมบูรณ์จากนั้นใช้ Env.getProperty ("ชื่อคีย์") เพื่ออ่านค่าที่เกี่ยวข้อง
เมื่อเยี่ยมชม: http: // localhost: 8088/index2 คุณได้รับ: "วิธีที่ 2: Hello World Springboot"
2. อ่านข้อมูลไฟล์กำหนดค่าที่กำหนดเองตัวอย่างเช่น: uther.properties
เพื่อไม่ให้ทำลายนิเวศวิทยาดั้งเดิมของไฟล์หลัก แต่ยังต้องมีข้อมูลการกำหนดค่าที่กำหนดเองโดยทั่วไปไฟล์การกำหนดค่าที่กำหนดเองจะถูกเลือกเพื่อวางข้อมูลที่กำหนดเองเหล่านี้ ที่นี่ผู้เขียนไฟล์กำหนดค่า properties ถูกสร้างขึ้นในไดเรกทอรีทรัพยากร
ทรัพยากร/ผู้แต่งเนื้อหาเนื้อหามีดังนี้:
Author.Name = Solin Author.age = 22
สร้างคลาสเอนทิตีสำหรับการจัดการการกำหนดค่า:
แพ็คเกจ Solin.Controller; นำเข้า org.springframework.boot.context.properties.configurationProperties; นำเข้า org.springframework.context.annotation.configuration; นำเข้า org.springframework.stereotype.component; // เพิ่มในความคิดเห็น @component คุณสามารถใช้ @autowired โดยตรงเพื่อสร้างวัตถุอินสแตนซ์ในสถานที่อื่น ๆ @component @configurationProperties (คำนำหน้า = "ผู้เขียน", สถานที่ = "classpath: ผู้แต่ง อายุ int ส่วนตัว; สตริงสาธารณะ getName () {ชื่อคืน; } โมฆะสาธารณะ setName (ชื่อสตริง) {this.name = name; } public int getage () {return Age; } การตั้งค่าโมฆะสาธารณะ (อายุ int) {this.age = อายุ; -สังเกต:
มีคุณสมบัติสองประการในการเพิ่มความสามารถในการเพิ่มความหมายของ @ConfigurationProperties:
สถานที่: ระบุตำแหน่งของไฟล์การกำหนดค่า
คำนำหน้า: ระบุคำนำหน้าของชื่อคีย์ในไฟล์กำหนดค่า (ชื่อคีย์ทั้งหมดในไฟล์กำหนดค่าที่นี่เริ่มต้นด้วยผู้เขียน)
การใช้ @component คือการเปิดใช้งานคลาสขึ้นอยู่กับสถานที่อื่นนั่นคือเพื่อสร้างอินสแตนซ์โดยใช้คำอธิบายประกอบ @autowired
สร้างคอนโทรลเลอร์ทดสอบ
แพ็คเกจ Solin.Controller; นำเข้า org.springframework.beans.factory.annotation.autowired; นำเข้า org.springframework.stereotype.controller; นำเข้า org.springframework.web.bind.annotation.requestmapping; นำเข้า org.springframework.web.bind.annotation.responsebody; @Controller คลาสสาธารณะ configcontroller {@autowired ส่วนตัว mywebconfig conf; @RequestMapping ("/ทดสอบ") สาธารณะ @ResponseBody String Test () {return "ชื่อ:"+conf.getName ()+"---"+"อายุ:"+conf.getage (); -หมายเหตุ: เนื่องจาก @component ถูกเพิ่มลงในคลาส Conf คุณสามารถใช้ @autowired โดยตรงเพื่อสร้างวัตถุอินสแตนซ์
เมื่อเยี่ยมชม: http: // localhost: 8088/ทดสอบคุณได้รับ: "ชื่อ: solin --- อายุ: 22"
สรุป
ด้านบนเป็นวิธีการอ่านไฟล์กำหนดค่าคุณสมบัติที่กำหนดเองภายใต้ Springboot แนะนำให้คุณรู้จักโดยตัวแก้ไข ฉันหวังว่ามันจะเป็นประโยชน์กับคุณ หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับคุณทันเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!