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
@Configuration
public class AuthConfig {
@Value("${auth.username}")
String username;
@Value("${auth.password"})
String password;
@Bean
public Auth auth() {
return new Auth(username, password);
}
}
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")
.
No Comments