Spring-boot nous permet plusieurs méthodes pour fournir des configurations externalisées, vous pouvez essayer d'utiliser des fichiers application.yml ou yaml au lieu du fichier de propriétés et fournir différentes configurations de fichiers de propriétés selon différents environnements.
Nous pouvons séparer les propriétés de chaque environnement dans des fichiers yml distincts sous des profils de ressort distincts. Ensuite, pendant le déploiement, vous pouvez utiliser:
java -jar -Drun.profiles=SpringProfileName
pour spécifier le profil de ressort à utiliser. Notez que les fichiers yml doivent être nommés comme
application-{environmentName}.yml
pour qu'ils soient automatiquement repris par springboot.
Référence: https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-features-external-config-profile-specific-properties
Pour lire à partir du fichier application.yml ou de la propriété:
La façon la plus simple de lire une valeur à partir du fichier de propriétés ou du yml est d'utiliser l'annotation spring @value. Spring charge automatiquement toutes les valeurs du yml dans l'environnement spring, afin que nous puissions directement utiliser ces valeurs de l'environnement comme:
@Component
public class MySampleBean {
@Value("${name}")
private String sampleName;
// ...
}
Ou une autre méthode que le printemps propose pour lire les beans fortement typés est la suivante:
YML
ymca:
remote-address: 192.168.1.1
security:
username: admin
POJO correspondant pour lire le 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) { ... }
}
}
La méthode ci-dessus fonctionne bien avec les fichiers yml.
Référence: https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html
Environment
ou via@ConfigurationProperties