Spring-boot nos permite varios métodos para proporcionar configuraciones externalizadas, puede intentar usar los archivos application.yml o yaml en lugar del archivo de propiedades y proporcionar diferentes archivos de propiedades configurados de acuerdo a diferentes entornos.
Podemos separar las propiedades de cada entorno en archivos yml separados en perfiles de resorte separados. Luego, durante la implementación, puede usar:
java -jar -Drun.profiles=SpringProfileName
para especificar qué perfil de resorte usar. Tenga en cuenta que los archivos yml deben tener un nombre como
application-{environmentName}.yml
para que sean automáticamente recogidos por springboot.
Referencia: https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-features-external-config-profile-specific-properties
Para leer desde el archivo application.yml o de propiedad:
La forma más fácil de leer un valor del archivo de propiedades o yml es usar la anotación spring @value. Spring carga automáticamente todos los valores desde el yml al entorno spring, por lo que podemos usar directamente esos valores del entorno como:
@Component
public class MySampleBean {
@Value("${name}")
private String sampleName;
// ...
}
U otro método que proporciona spring para leer frijoles fuertemente tipados es el siguiente:
YML
ymca:
remote-address: 192.168.1.1
security:
username: admin
POJO correspondiente para leer el 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) { ... }
}
}
El método anterior funciona bien con archivos yml.
Referencia: https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html
Environment
o vía@ConfigurationProperties