Spring-boot ทำให้เรามีวิธีการหลายวิธีในการกำหนดค่าภายนอกคุณสามารถลองใช้ไฟล์ application.yml หรือ yaml แทนไฟล์คุณสมบัติและจัดเตรียมการตั้งค่าไฟล์คุณสมบัติที่แตกต่างกันตามสภาพแวดล้อมที่แตกต่างกัน
เราสามารถแยกคุณสมบัติสำหรับแต่ละสภาพแวดล้อมออกเป็นไฟล์ yml แยกต่างหากภายใต้สปริงโปรไฟล์แยกจากนั้นในระหว่างการปรับใช้คุณสามารถใช้:
java -jar -Drun.profiles=SpringProfileName
เพื่อระบุโปรไฟล์ฤดูใบไม้ผลิที่จะใช้โปรดทราบว่าไฟล์ yml ควรเป็นชื่อดังนี้
application-{environmentName}.yml
สำหรับพวกเขาที่จะถูกนำขึ้นโดยอัตโนมัติโดย springboot
การอ้างอิง: https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-features-external-config-profile-specific-properties
หากต้องการอ่านจากไฟล์ application.yml หรือคุณสมบัติ:
วิธีที่ง่ายที่สุดในการอ่านค่าจากไฟล์คุณสมบัติหรือ YML คือการใช้ annotation.Spring ฤดูใบไม้ผลิ @value โหลดโดยอัตโนมัติค่าทั้งหมดจาก YML กับสภาพแวดล้อมในฤดูใบไม้ผลิเพื่อให้เราโดยตรงสามารถใช้ค่าเหล่านั้นจากสภาพแวดล้อมเช่น:
@Component
public class MySampleBean {
@Value("${name}")
private String sampleName;
// ...
}
หรือวิธีอื่นที่สปริงให้อ่านถั่วที่พิมพ์อย่างมากมีดังนี้:
YML
ymca:
remote-address: 192.168.1.1
security:
username: admin
POJO ที่สอดคล้องกันเพื่ออ่าน yml:
@ConfigurationProperties("ymca")
public class YmcaProperties {
private InetAddress remoteAddress;
private final Security security = new Security();
public boolean isEnabled() { ... }
public void setEnabled(boolean enabled) { ... }
public InetAddress getRemoteAddress() { ... }
public void setRemoteAddress(InetAddress remoteAddress) { ... }
public Security getSecurity() { ... }
public static class Security {
private String username;
private String password;
public String getUsername() { ... }
public void setUsername(String username) { ... }
public String getPassword() { ... }
public void setPassword(String password) { ... }
}
}
วิธีการดังกล่าวทำงานได้ดีกับไฟล์ yml
การอ้างอิง: https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html
Environment
หรือผ่านทาง@ConfigurationProperties