Comment injecter les ressources d’un fichier de configuration avec Apache Deltaspike?

Introduction

Dans l’épisode 1, on a vu qu’on pouvait assez facilement se passer de Spring. Dans cet article, on va voir comment injecter des ressources depuis un fichier de configuration.

Fichier de configuration

Comme on l’a vu dans l’article précédent, l’injection des classes ne nécessite aucune déclaration dans un fichier XML (ouf!, quelle plaie quotidienne ce fichier applicationContext.xml). Par contre, on doit tout de même pouvoir amener des éléments de configuration (dossier pour chargement de pdf, etc). Pour cela, Deltaspike propose, par défaut, d’utiliser le fichier apache-deltaspike.properties, qui doit se trouver dans le dossier resources/META-INF du projet.

Structure du fichier

Ici, rien de compliqué, le fichier est un simple fichier texte dont chaque ligne est constitué d’une clé et d’une valeur, comme ceci:

1
2
3
cle=valeur avec des espaces
autreCle=valeur
dossier=/home/test/test.pdf

Chargement du fichier

Là c’est toute la magie de Deltaspike qui vous saute à la figure! Le fichier est chargé automatiquement via le ConfigResolver. Il n’y a donc rien à faire ou à déclarer. Magique!

Utilisation des ressources

Encore une fois, Deltaspike propose une solution simple et élégante. Pour utiliser une ressource, il suffit d’utiliser l’annotation @ConfigProperty pour lire la valeur et @Inject pour l’injecter dans une variable. Un exemple valant mieux que mille mots:

1
@Inject @ConfigProperty(name = "cle") private String valeurEspace;

Conclusion

Dans ce deuxième (court) chapitre, on vient de voir que Apache Deltaspike propose le nécessaire pour traiter la configuration externe. Dans le prochain volet, on regardera comment Apache Deltaspike propose de gérer les datasources.