Spring-boot ci consente diversi metodi per fornire configurazioni esternalizzate, puoi provare a utilizzare i file application.yml o yaml invece del file delle proprietà e fornire una diversa configurazione dei file delle proprietà in base a diversi ambienti.
È possibile separare le proprietà di ciascun ambiente in file yml separati in profili di primavera separati, quindi durante la distribuzione è possibile utilizzare:
java -jar -Drun.profiles=SpringProfileName
per specificare quale profilo di primavera utilizzare. Notare che i file yml devono essere simili al nome
application-{environmentName}.yml
per essere automaticamente ripresi da Springboot.
Riferimento: https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-features-external-config-profile-specific-properties
Per leggere dal file application.yml o dalle proprietà:
Il modo più semplice per leggere un valore dal file di proprietà o yml è utilizzare l'annotazione spring @value. Pring carica automaticamente tutti i valori dall'YML all'ambiente Spring, in modo da poter utilizzare direttamente quei valori dall'ambiente come:
@Component
public class MySampleBean {
@Value("${name}")
private String sampleName;
// ...
}
O un altro metodo fornito da Spring per leggere i bean fortemente tipizzati è il seguente:
YML
ymca:
remote-address: 192.168.1.1
security:
username: admin
POJO corrispondente per leggere il codice 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) { ... }
}
}
Il metodo sopra funziona bene con i file yml.
Riferimento: https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html
Environment
o via@ConfigurationProperties