I. Une version d'Eclipse : Spring Tool Suite▲
Il s'agit d'une version d'Eclipse customisée pour Roo. Son installation prend aussi en compte les autres outils pour l'utilisation de Roo, notamment le Shell. L'outil est disponible à cette adresse : http://spring.io/tools/sts/all
II. Les lignes de commandes▲
Spring Roo fournit des lignes de commandes exécutables sur un projet, qui vont permettre de générer du code à la place du développeur. Elles sont très pratiques , notamment à l'initialisation d'un projet. Les lignes de commandes peuvent être exécutées dans le Shell Roo, accessible par deux moyens :
- dans STS via la vue Roo Shell ;
- ou bien en exécutant /bin/roo.sh du répertoire d'installation de STS.
II-A. Initialisation d'une application web▲
Initialiser une application Spring devient très simple avec Roo, qui en quelques lignes de commandes, va fournir une application web déployable et prête à être customisée pour vos projets.
- Créer un simple répertoire pour votre futur projet, y démarrer le Shell Roo, par la commande [répertoire d'installation de STS]/bin/roo.sh :
- Initialiser le projet par cette commande : project -topLevelPackage com.netapsys.demo.
Nous voyons alors que Roo a initialisé l'application Web. Il s'agit d'un projet Maven, que nous pouvons importer dans STS comme tout projet Maven classique. Dès lors, nous pouvons continuer à générer d'autres éléments pour notre future application par ligne de commandes.
- Ajoutons maintenant la configuration nécessaire pour JPA, via cette commande : jpa setup -provider HIBERNATE -database HYPERSONIC_IN_MEMORY
Nous constatons que Roo a mis à jour les fichiers applicationContext.xml et pom.xml. De plus, il a généré les fichiers database.properties et persistence.xml.
En regardant de plus près le fichier database.properties, nous voyons que Spring Roo inclut par défaut une implémentation sur HSQLDB. Celle-ci peut être changée, par exemple en MySQL, en important manuellement dans le pom les bibliothèques nécessaires et en modifiant le fichier. - Enfin, nous allons ajouter dans l'application webdes éléments pour utiliser Spring MVC.
Cette, fois la liste des éléments ajoutés par Roo est plus grande. En particulier, il a ajouté :
- des tags ;
- des pages jspx ;
- un fichier webmvc.xml ;
- tiles + un layout et un fichier views.xml ;
- des images ;
- un répertoire destiné à l'i18n.
Nous avons donc une application web préconfigurée, qui n'attend plus que les développements spécifiques à votre projet. Je vous propose de builder et démarrer cette application sous Tomcat 7, afin d'observer le résultat.
III. Annotations de Spring Roo▲
Comme je l'ai dit tout à l'heure, Spring Roo inclut de nombreuses annotations, qui vont prendre en charge une partie de la génération de votre code, grâce à la programmation par aspects. Il suffit d'annoter les éléments nécessaires et de démarrer votre Roo Shell, pour que celui-ci s'occupe du reste : il génère simplement des fichiers .aj pour compléter votre code.
Je vous présente celles que nous utilisons régulièrement à ce stade du projet :
- @RooJavaBean : annote une classe, et génère ses getters et setters ;
- @RooToString : annote une classe, et génère sa méthode toString() ;
- @RooJpaEntity : annote une classe. Elle permet de générer automatiquement certains éléments de configuration de Mapping JPA.
Prenons exemple sur cette arborescence :
Et voici ce que génère Roo via les annotations :
IV. Conclusion▲
Voilà. J'espère que ce petit aperçu vous permettra d'appréhender un outil, qui , bien utilisé, pourra vous faire gagner un temps précieux lors de vos développements.
V. Remerciements▲
Cet article a été publié avec l'aimable autorisation de la société NetapsysNetapsys.
Nous tenons à remercier Claude Leloup pour la relecture de cet article et milkoseck pour la mise au gabarit.