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 - это использовать spring @value annotation.Spring автоматически загружает все значения из yml в среду Spring, поэтому мы можем напрямую использовать эти значения из среды, например:
@Component
public class MySampleBean {
@Value("${name}")
private String sampleName;
// ...
}
Или другой метод, который предоставляет Spring для чтения строго типизированных bean-компонентов:
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