Suite au post précédent où je vous présentais les fonctionnalités de SpringSource Tool Suite pour l'édition des fichiers XML de Spring, je vous présente ici comment effectuer la configuration de votre projet avec ce plugin.
Définir un projet Java comme étant un projet Spring
Maintenant, il est nécessaire de déclarer le projet en tant que projet de type Spring.
Ceci permet d'activer les fonctionnalités de SpringSource Tool Suite sur ce projet.
Un projet de type Spring est indiqué par le petit « S » comme Spring en haut à droite de l’icône du projet qui passe de à
.
Voici deux méthodes: soit manuellement dans eclipse, soit via le plugin maven-eclipse-plugin de Maven.
Via Eclipse
- Dans Eclipse > Vue Package Explorer ou Project Explorer > Cliquer avec le bouton droit de la souris sur le nom du projet > Spring Tools > Add Spring Project Nature.
Maintenant votre projet est déclaré comme étant de type « projet Spring ».
Via le plugin maven-eclipse de Maven
L’utilisation du plugin maven-eclipse-plugin de Maven permet de définir un projet Maven comme étant de type Spring dans eclipse.
La déclaration du projet Spring s’effectue en ajoutant des propriétés à la configuration du plugin maven-eclipse-plugin dans le fichier pom.xml du projet de cette façon :
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-eclipse-plugin</artifactId> (…) <configuration> <projectnatures> <projectnature> org.springframework.ide.eclipse.core.springnature </projectnature> </projectnatures> <additionalBuildcommands> <buildcommand> org.springframework.ide.eclipse.core.springbuilder </buildcommand> </additionalBuildcommands> </configuration> </plugin>
Lancer la commande Maven pour mettre à jour la configuration des projets dans Eclipse :
mvn eclipse:clean eclipse:eclipse
Une fois réactualisé dans Eclipse, le projet sera indiqué comme étant un projet de type « Spring » : un petit « S » apparaîtra sur l'icône du projet dans eclipse :
Spring Project Builder
Le Spring Project Builder est ajouté dans la liste des Builders dans la configuration du projet.
Il indique que les fichiers de configurations de Spring seront analysés par SpringSource Tool Suite à chaque compilation du projet.
Ceci permet d’avoir à jour les références vers les beans Spring à chaque modification du code Java ou des fichiers XML de configuration Spring.
Configuration du projet avec SpringSource Tool Suite
Maintenant que notre projet est de type Spring, nous abordons la partie la plus importante de la configuration du projet.
Elle consiste à indiquer à SpringSource Tool Suite les fichiers Spring du projet actuel et des projets liés qui seront analysés par SpringSource Tool Suite au niveau de ce projet.
Nous avons ainsi deux listes à définir : une première liste pour indiquer les fichiers Spring du projet actuel et une seconde liste pour indiquer les fichiers Spring qui seront analysés par SpringSource Tool Suite.
Pour cela, dans la configuration Spring du projet, l’arborescence contient le nouvel élément Spring > Beans Support.
La partie droite Beans Support contient deux onglets Config Files et Config Sets.
Onglet Config Files
L’onglet Config Files permet de lister les fichiers XML de Spring du projet actuel. Les fichiers Spring peuvent être soit ajoutés soit manuellement, soit détectés automatiquement par « SpringSource Tool Suite » ce qui est fort pratique ! 🙂
Une fois référencé, le fichier Spring est indiqué dans Eclipse avec un petit « S » sur son icône de fichier :
Onglet Config Sets
L’onglet Config Sets permet lui de d'indiquer les fichiers Spring qui sont réellement analysés par SpringSource Tool Suite pour le projet actuel.
Nous y indiquons ainsi les fichiers Spring du projet actuel et également les fichiers Spring des autres projets liés.
Important : pour les fichiers Spring des tests : il ne faut pas référencer les fichiers Spring des tests des autres projets liés, mais uniquement ceux des tests du projet actuel. En effet, les fichiers Spring de tests des autres projets ne sont pas utilisés dans le projet actuel et les référencer serait source d'erreurs.
Configuration d’un projet
Voyons comment configurer un projet.
Voici le projet bookstore à configurer. Il s'agit d'une application Web :
Liste des fichiers Spring
Dans un premier temps, nous définissons la liste des fichiers Spring du projet.
Dans la configuration du projet :
- Beans Support > Onglet Config Files > Cliquer sur Scan > Ajouter tous les fichiers Spring détectés :
Groupe des fichiers Spring analysés par SpringSource Tool Suite
Dans un second temps, nous indiquons à SpringSource Tool Suite les fichiers Spring à prendre en compte pour ce projet.
Dans la configuration du projet :
- Beans Support > Onglet Config Sets > Cliquer sur New > La fenêtre d'ajouts de fichiers Spring apparaît > Sélectionnez tous les fichiers Spring de bookstore-common.
Fin de la configuration
Voilà le projet est configuré, SpringSource Tool Suite connaît et analyse vos fichiers Spring à chaque compilation du projet.
SpringSource Tool Suite va pouvoir vous assister dans l'écriture de vos fichiers Spring et dans la détection des erreurs.
Dans cette troisième partie, nous allons aborder la configuration d'un projet disposant de plusieurs modules liés entre eux.
En effet, ce type de configuration est moins évident que pour un projet simple.
L'objectif de ce post est de vous indiquer comment s'y prendre et d'éviter certains pièges.
Configuration d’un projet avec plusieurs modules
Pour comprendre comment configurer des projets disposant de plusieurs modules avec SpringSource Tool Suite, nous allons prendre l’exemple d'un projet disposant des deux modules suivants :
- bookstore-common : module inclu sous forme de jar dans le module web
- bookstore-web : module web
Nous avons donc une dépendance entre le projet common et le projet web car le module common est inclu sous forme de jar dans le module web.
Avec cette dépendance, les fichiers Spring du module common sont utilisés dans le module web. Ainsi les beans Spring du module web référencent les beans spring du module commun. Cette complication sera détaillée ci-dessous pour pouvoir configurer des projets multi-modules.
Voici l’organisation de ces deux modules :
Définir les fichiers Spring du projet « common »
Le module commun ne référence aucun fichier Spring d'un autre projet.
Il correspond au cas d'un projet simple : nous référençons dans SpringSource Tool Suite uniquement les fichiers Spring de ce projet.
Lister les fichiers Spring du projet « common »
Dans la configuration du projet :
- Beans Support > Onglet Config Files > Cliquer sur Scan > Ajouter tous les fichiers Spring détectés :
Groupe des fichiers Spring analysés par SpringSource Tool Suite
- Beans Support > Onglet Config Sets > Cliquer sur New > La fenêtre d'ajouts de fichiers Spring apparaît > Sélectionnez tous les fichiers Spring de bookstore-common.
Définir les fichiers Spring du projet « web »
Pour le projet bookstore-web, nous avons à référencer les fichiers Spring applicationContext-web.xml et applicationContext.xml et également les fichiers Spring de bookstore-common.
Lister les fichiers Spring du projet « web »
Dans la configuration du projet :
- Beans Support > Onglet Config Files > Cliquer sur Scan > Ajouter tous les fichiers Spring détectés :
Groupe des fichiers Spring analysés par SpringSource Tool Suite
- Beans Support > Onglet Config Sets > Cliquer sur New > La fenêtre d'ajouts de fichiers Spring apparaît > Sélectionnez les fichiers Spring de bookstore-web et de bookstore-common.
Important : les fichiers Spring des tests des autres projets ne doivent pas être sélectionnés.
Ici, le fichier Spring applicationContext-test.xml des tests du module commun ne doit pas être repris. Il est encadré ci-dessous en rouge. Ainsi son contenu n'impactera pas le module Web qui n'utilise pas ce fichier.
Conclusion
Au travers des exemples pour un projet simple et d'un projet multi-modules comportant des tests, vous avez pu voir comment effectuer la configuration sur votre projet.
Vous pourrez ainsi gagner du temps et de l'énergie dans l'écriture de vos fichiers XML Spring à l'aide de SpringSource Tool Suite.