Skip to content

Configuration de beans et properties

En cours de découverte, sujet à corrections et améliorations.

Pour configurer des beans custom, on peut utiliser les fichiers properties, en faisant une @Configuration class dédiée.

Structure de base

La base consiste en quelques étapes:

  • Annoter notre classe de l'annotation Configuration
  • Annoter les variables membre qui doivent être auto-remplies de l'annotation @Value
  • Créer notre méthode @Bean

Il faudra noter que la valeur définie dans @Value doit être définie, sinon Spring boot plantera au démarrage.

Exemple d'une classe prenant des informations de connexion, et du fichier properties de base

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
@Configuration
public class AuthConfig {
    @Value("${auth.username}")
    String username;

    @Value("${auth.password"})
    String password;

    @Bean
    public Auth auth() {
        return new Auth(username, password);
    }
}
1
2
username = Artemis
password = Cats4Life

Environnement

Une valeur peut être directement fournie par l'environnement système.

Pour qu'elle soit reconnue, on suivra les conventions suivantes:

  • La variable est entièrement en majuscule (AUTH.USERNAME)
  • Le caractère de séparation est soit _, soit ..

Fichiers properties custom

Il est possible de charger les valeurs d'un ou de plusieurs fichiers properties, en se servant de l'annotation @PropertySource.

Cette annotation prend un classpath, ou une liste de classpaths, sous le format texte classpath:<value>.

Par exemple, @PropertySource("classpath:config/auth.properties") va charger les valeurs du fichier présent dans /src/main/resources/config/auth.properties.

Profils

Il est possible de créer des fichiers properties de sorte à ce qu'ils soient uniquement utilisés lorsqu'un certain profil est chargé.

Pour ce faire, le fichier doit s'appeler <nom>-<profil>.properties.

Par exemple, application-test.properties pour le profil test.

A noter que le contenu du fichier spécifique à un profil sera pris en compte avant le contenu du fichier "général".

Documentation officielle ici.

YAML

Le format YAML est utilisable pour configurer Spring Boot.

Il suffit de renommer le fichier *.properties en *.yaml (ou *.yml).

Dans le cas d'un fichier custom (pointé par @PropertySource), il faut aussi corriger la source, ex. @PropertySource("classpath:config/auth.yml").