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 полягає в використанні пружини @value annotation.Spring автоматично завантажує всі значення з 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