ในระหว่างการใช้งานสปริงบูตคุณจะพบว่าจำเป็นต้องมีการกำหนดค่าเพียงเล็กน้อยในโครงการเพื่อให้ฟังก์ชั่นที่เกี่ยวข้องเสร็จสมบูรณ์ด้วยการกำหนดค่าแบบแยกส่วนในสปริงบูต แต่ละสตาร์ทเตอร์ขึ้นอยู่กับใน pom.xml มีการกำหนดค่าเริ่มต้นและการกำหนดค่าเริ่มต้นเหล่านี้เพียงพอที่จะตอบสนองการพัฒนาตามปกติ
หากคุณต้องการแก้ไขการกำหนดค่าเริ่มต้นที่กำหนดเองและเริ่มต้นสปริงบูตให้วิธีที่ง่ายมากเพียงเพิ่มและแก้ไขการกำหนดค่าที่สอดคล้องกันในแอปพลิเคชัน properties (การกำหนดค่าเริ่มต้นของ application.properties จะถูกอ่านเมื่อเริ่มต้นการบูตฤดูใบไม้ผลิ)
1. แก้ไขการกำหนดค่าเริ่มต้น
ตัวอย่างที่ 1 เมื่อ Spring Boot กำลังพัฒนาเว็บแอปพลิเคชันพอร์ตเริ่มต้นเริ่มต้นของ Tomcat คือ 8080 หากคุณต้องการแก้ไขพอร์ตเริ่มต้นคุณต้องเพิ่มระเบียนต่อไปนี้ในแอปพลิเคชัน Properties:
Server.port = 8888
รีสตาร์ทโครงการและคุณสามารถดูบันทึกการเริ่มต้น: Tomcat เริ่มต้นบนพอร์ต: 8888 (http) พอร์ตเริ่มต้นคือ 8888 คุณสามารถเข้าถึงได้โดยปกติโดยไปที่ http: // localhost: 8888 ในเบราว์เซอร์
ตัวอย่างที่ 2. การกำหนดค่าข้อมูลการเชื่อมต่อฐานข้อมูลใน Spring Boot Development (โดยใช้ druid ของ com.alibaba ที่นี่) เพิ่มระเบียนต่อไปนี้ใน application.properties:
druid.url = jdbc: mysql: //192.168.0.20: 3306/testdruid.driver-class = com.mysql.jdbc.driverdruid.username = ro otdruid.password = 123456druid.initial-size = 1druid.min-idle = 1druid.max-active = 20druid.test-on Borrow = True
ตัวอย่างสองตัวอย่างข้างต้นแสดงให้เห็นว่าหากคุณต้องการแก้ไขการกำหนดค่าเริ่มต้นในโมดูลเริ่มต้นคุณจะต้องเพิ่มการกำหนดค่าที่ต้องแก้ไขในแอปพลิเคชัน properties
ไฟล์แนบ: รายการการกำหนดค่าทั้งหมดสำหรับ application.properties คลิกเพื่อดูคำแนะนำการกำหนดค่าทั้งหมดสำหรับการบูตฤดูใบไม้ผลิ
2. การกำหนดค่าแอตทริบิวต์ที่กำหนดเอง
นอกเหนือจากการปรับเปลี่ยนการกำหนดค่าเริ่มต้นในแอปพลิเคชัน Properties เรายังสามารถกำหนดค่าคุณสมบัติที่กำหนดเองได้ที่นี่และโหลดใน entity bean
1. เพิ่มการกำหนดค่าคุณสมบัติที่กำหนดเองใน Application.properties
com.sam.name = samcom.sam.age = 11com.sam.desc = Magical Sam
2. เขียนคลาสถั่วและคุณสมบัติโหลด
คลาส SAM จำเป็นต้องเพิ่มคำอธิบายประกอบ @component ให้สแกนสปริงไปยังชั้นเรียนเมื่อเริ่มต้นและเพิ่มลงในคอนเทนเนอร์สปริง
คนแรก: ใช้ @Value ที่รองรับสปริง () เพื่อโหลด
แพ็คเกจ com.sam.demo.conf; นำเข้า org.springframework.beans.factory.annotation.value; นำเข้า org.springframework.stereotype.Component;/** * @author sam * @since 2017/7/15 */ @ComponentPublic Class @Value ("$ {com.sam.name}") ชื่อสตริงส่วนตัว; @Value ("$ {com.sam.age}") อายุ int ส่วนตัว; @Value ("$ {com.sam.desc}") สตริงส่วนตัว desc; // getter & setter} ประเภทที่สอง: ใช้ @ConfigurationProperties (คำนำหน้า = "") เพื่อตั้งค่าคำนำหน้าและไม่จำเป็นต้องมีคำอธิบายประกอบในคุณสมบัติ
แพ็คเกจ com.sam.demo.conf; นำเข้า org.springframework.stereotype.component;/** * @author sam * @since 2017/7/15 */ @component @configurationProperties (คำนำหน้า = "com.sam") คลาสสาธารณะ sam อายุ int ส่วนตัว; สตริงส่วนตัว desc; // getter & setter}
3. ฉีดและใช้ถั่วแซมในคอนโทรลเลอร์
แพ็คเกจ com.sam.demo.controller; นำเข้า com.sam.demo.conf.sam; นำเข้า org.springframework.beans.factory.annotation.autowired; นำเข้า org.springframework.web.bind.annotation. * @author sam * @since 2017/7/14 */ @restcontrollerpublic class indexcontroller {@autowired ส่วนตัวแซมแซม; @RequestMapping ("/index") ดัชนีสตริงสาธารณะ () {system.out.println (sam.getName () + "" + sam.getage () + "" + sam.getDesc ()); กลับ "ดัชนี"; -การเข้าถึงเบราว์เซอร์: http: // localhost: 8080/index, คอนโซลพิมพ์เนื้อหาของ SAM ตามปกติ
3. คำอธิบายโดยละเอียดเกี่ยวกับแอปพลิเคชันการกำหนดค่าคุณสมบัติ properties
1. การอ้างอิงพารามิเตอร์และการใช้วิธีการสุ่มตัวเลขสุ่ม
ใน Application.properties คุณสามารถอ้างถึงค่าของคุณสมบัติอื่น ๆ โดยตรงผ่าน $ {} ดังนี้:
com.sam.name = samcom.sam.age = 11com.sam.desc = $ {ชื่อ} คือ $ {อายุ} ปี หากคุณต้องการรับหมายเลขสุ่มในแอปพลิเคชัน properties คุณสามารถใช้ $ {random} ดังนี้:
#get String sring com.sam.randomValue = $ {random.value} #get string สุ่ม: $ {random.value} #get สุ่ม int: $ {random.int} #get ตัวเลขสุ่มภายใน 10: $ {random.int (10)}#รับตัวเลขสุ่มจาก 10-20: $ {สุ่ม $ {random.uuid}2. การกำหนดค่าหลายสภาพแวดล้อม
อาจมีสภาพแวดล้อมที่แตกต่างกันในการพัฒนาจริงรวมถึงสภาพแวดล้อมการพัฒนาสภาพแวดล้อมการทดสอบและสภาพแวดล้อมการสร้าง การกำหนดค่าที่เกี่ยวข้องกับแต่ละสภาพแวดล้อมอาจแตกต่างกันเช่น: ข้อมูลฐานข้อมูลการกำหนดค่าพอร์ตการกำหนดค่าพา ธ ท้องถิ่น ฯลฯ
หากคุณต้องการแก้ไขแอปพลิเคชันทุกครั้งที่คุณเปลี่ยนไปใช้สภาพแวดล้อมที่แตกต่างกันการดำเนินการนั้นยุ่งยากมาก การกำหนดค่าสิ่งแวดล้อมหลายตัวมีให้ใน Spring Boot ทำให้เราสามารถสลับสภาพแวดล้อมได้ง่ายขึ้น
สร้างไฟล์ใหม่สามไฟล์ในไดเรกทอรีเดียวกับ Application.properties:
Application-Dev.Properties // การพัฒนาสภาพแวดล้อมการกำหนดค่าไฟล์แอปพลิเคชัน -test.properties // การพัฒนาสภาพแวดล้อมการกำหนดค่าไฟล์แอปพลิเคชัน prod.properties // ไฟล์การกำหนดค่าสภาพแวดล้อมการผลิตไฟล์
สามไฟล์ข้างต้นสอดคล้องกับเนื้อหาการกำหนดค่าของการพัฒนาการทดสอบและการผลิตตามลำดับ ขั้นตอนต่อไปคือวิธีการเลือกอ้างอิงการกำหนดค่าเหล่านี้
เพิ่มใน Application.properties:
Spring.profiles.active = dev#การอ้างอิงการทดสอบการกำหนดค่าไฟล์#sprom.profiles.active = ทดสอบ#อ้างอิงการกำหนดค่าการผลิตไฟล์#sprom.profiles.active = prod
หลังจากเพิ่ม Spring.profiles.active = dev เริ่มแอปพลิเคชันและคุณจะพบว่าข้อมูลการกำหนดค่าของ dev นี้ถูกอ้างอิง
จะเห็นได้ว่าไฟล์การกำหนดค่าสามไฟล์ข้างต้นสอดคล้องกับแอปพลิเคชัน-{โปรไฟล์}. รูปแบบ properties และ dev ใน spring.profiles.active = dev เพิ่มใน application.properties เป็นโปรไฟล์ในไฟล์กำหนดค่าด้านบน สลับทันทีตามสภาพแวดล้อมที่เฉพาะเจาะจง
เมื่อเริ่มต้นแอปพลิเคชันด้วยคำสั่งที่เรียกใช้แพ็คเกจ JAR คุณสามารถระบุการกำหนดค่าที่เกี่ยวข้อง
Java -jar demo-0.0.1-snapshot.jar ---spring.profiles.active = dev
สิ่งที่แนบมา: วิธีการกำหนดค่าและระดับลำดับความสำคัญมีดังนี้:
. พารามิเตอร์บรรทัดคำสั่ง
ข. แอตทริบิวต์ JNDI จาก Java: comp/env
ค. คุณสมบัติของระบบ Java (System.getProperties ())
d. ตัวแปรสภาพแวดล้อมระบบปฏิบัติการ
ก. สุ่ม.* ค่าคุณสมบัติของการกำหนดค่าแบบสุ่ม ValuePropertySource
f. jar แอปพลิเคชันภายนอก-{profile} .properties หรือ application.yml (พร้อม spring.profile) ไฟล์การกำหนดค่า
กรัม JAR Internal Application- {profile} .properties หรือ application.yml (พร้อม spring.profile) ไฟล์การกำหนดค่า
ชม. jar application external.properties หรือ application.yml (ไม่มี Spring.profile) ไฟล์กำหนดค่า
ฉัน. jar application ภายใน properties หรือ application.yml (ไม่มี Spring.profile) ไฟล์กำหนดค่า
j. @PropertySource ในคลาส Annotation @Configuration
ก. คุณสมบัติเริ่มต้นที่ระบุโดย SpringApplication.setDefaultProperties
หมายเหตุ: วิธีการเริ่มต้นแอปพลิเคชันโดยการระบุพารามิเตอร์ด้วยพารามิเตอร์บรรทัดคำสั่งอาจไม่ปลอดภัย เราสามารถตั้งค่าวิธีการที่จะห้ามการเริ่มแอปพลิเคชันด้วยวิธีนี้ดังนี้:
SpringApplication.SetAddCommandLineProperties (เท็จ);
แพ็คเกจ com.sam.demo; นำเข้า org.springframework.boot.springapplication; นำเข้า org.springframework.boot.autoconfigure.springbootapplication; @springbootapplicationpublic Class Demoapplication SpringApplication SpringApplication = New SpringApplication (DemoApplication.class); // ป้องกันบรรทัดคำสั่งเพื่อตั้งค่าพารามิเตอร์ springapplication.setAddCommandLineProperties (เท็จ); Springapplication.run (args); -
เติมเต็ม:
ในการกำหนดค่าสปริงบูตนอกเหนือจากการสนับสนุนแอปพลิเคชัน properties ยังรองรับวิธีการกำหนดค่าของ application.yml ดังต่อไปนี้:
สร้าง application.yml ใหม่แทน application.properties
เซิร์ฟเวอร์: พอร์ต: 9999com: SAM: ชื่อ: SAM อายุ: 11 DESC: Magical SAM
หมายเหตุ: พอร์ต: 9999 มีพื้นที่อยู่ตรงกลาง โปรดดูที่ YML Syntax: การใช้ไฟล์กำหนดค่า YML
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น