Spring YAML Configuration
1. Vue d'ensemble
L'une des méthodes de configuration des applications Spring consiste à utiliser les fichiers de configuration YAML.
Dans cet article rapide, nous allons configurer différents profils pour une simple application Spring Boot utilisant YAML.
Lectures complémentaires:
Un guide rapide sur Spring @Value
Apprenez à utiliser l'annotation Spring @Value pour configurer des champs à partir de fichiers de propriétés, de propriétés système, etc.
Utilisation de Spring @Value avec les valeurs par défaut
Un guide rapide et pratique pour définir les valeurs par défaut lors de l'utilisation de l'annotation @Value dans Spring.
Comment injecter une valeur de propriété dans une classe non gérée par Spring?
Apprenez à initialiser les valeurs de propriétés dans les classes Java sans utiliser directement le mécanisme d’injection de Spring.
2. Fichier YAML de printemps
Les profils Spring aident les applications Spring à définir différentes propriétés pour différents environnements.
Voici un simple fichier YAML qui contient deux profils. The three dashes separating the two profiles indicate the start of a new document so all the profiles can be described in the same YAML file.
Le chemin relatif du fichierapplication.yml est/myApplication/src/main/resources/application.yml.
L'application Spring prend le premier profil comme profil par défaut, sauf indication contraire dans l'application Spring.
spring:
profiles: test
name: test-YAML
environment: test
servers:
- www.abc.test.com
- www.xyz.test.com
---
spring:
profiles: prod
name: prod-YAML
environment: production
servers:
- www.abc.com
- www.xyz.com
3. Lier YAML à une classe de configuration
Pour charger un ensemble de propriétés associées à partir d'un fichier de propriétés, nous allons créer une classe de bean:
@Configuration
@EnableConfigurationProperties
@ConfigurationProperties
public class YAMLConfig {
private String name;
private String environment;
private List servers = new ArrayList<>();
// standard getters and setters
}
Les annotations utilisées ici sont:
-
@Configuration marque la classe comme source de définitions de bean
-
@ConfigurationProperties lie et valide les configurations externes à une classe de configuration
-
@EnableConfigurationProperties cette annotation est utilisée pour activer les beans annotés@ConfigurationProperties dans l'application Spring
4. Accéder aux propriétés YAML
Pour accéder aux propriétés YAML, nous créons un objet de la classeYAMLConfig et accédons aux propriétés à l'aide de cet objet.
Dans le fichier de propriétés, définissons la variable d'environnementspring.active.profiles surprod. Si nous ne définissons passpring.profiles.active,, la valeur par défaut sera la première propriété de profils définie dans le fichier YAML.
Le chemin relatif du fichier de propriétés est/myApplication/src/main/resources/application.properties.
spring.profiles.active=prod
Dans cet exemple, nous affichons les propriétés en utilisant lesCommandLineRunner.
@SpringBootApplication
public class MyApplication implements CommandLineRunner {
@Autowired
private YAMLConfig myConfig;
public static void main(String[] args) {
SpringApplication app = new SpringApplication(MyApplication.class);
app.run();
}
public void run(String... args) throws Exception {
System.out.println("using environment: " + myConfig.getEnvironment());
System.out.println("name: " + myConfig.getName());
System.out.println("servers: " + myConfig.getServers());
}
}
La sortie sur la ligne de commande:
using environment: production
name: prod-YAML
servers: [www.abc.com, www.xyz.com]
5. Remplacement de propriété YAML
Au démarrage de printemps, les fichiers YAML peuvent être remplacés par d'autres fichiers de propriétés YAML en fonction de leur emplacement. Les propriétés YAML peuvent être remplacées par des fichiers de propriétés situés aux emplacements suivants, par ordre de priorité.
-
Propriétés des profils placées à l'extérieur du pot emballé
-
Propriétés des profils emballés dans le pot emballé
-
Propriétés d'application placées à l'extérieur du pot emballé
-
Propriétés d'application emballées à l'intérieur du pot emballé
6. Conclusion
Dans cet article rapide, nous avons vu comment configurer les propriétés des applications Spring Boot à l'aide de YAML. Nous avons également vu les règles de remplacement de propriété suivies par Spring Boot pour les fichiers YAML.
Le code de cet article est disponibleover on GitHub.