Guide rapide de Spring Roo

1. Vue d'ensemble

Spring Roo est un outil de développement rapide d'applications (RAD) qui vise à fournir des résultats rapides et instantanés axés sur les applications Web Spring et les nouvelles technologies Spring. Il nous permet de générer un code standard et une structure de projet pour les applications Spring avec des commandes simples à utiliser.

Roo peut être utilisé comme une application autonome exécutée à partir de la ligne de commande du système d'exploitation. Il n'est pas nécessaire d'utiliser Eclipse, Spring Tool Suite (STS) ou tout autre IDE; en fait, nous pouvons utiliser n'importe quel éditeur de texte pour écrire du code!

Cependant, pour plus de simplicité, nous utiliserons STS IDE avec l'extension Roo.

2. Installation de Spring Roo

2.1. Exigences

Pour suivre ce tutoriel, ceux-ci doivent être installés:

  1. Java JDK 8
  2. STS
  3. Spring Roo

2.2. Installation

Une fois que nous avons téléchargé et installé Java JDK et STS, nous devons décompresser Spring Roo et l'ajouter au chemin système.

Créons la variable d'environnement ROO_HOME et ajoutons % ROO_HOME% \ bin au chemin.

Pour vérifier que Roo est correctement installé, nous pouvons ouvrir la ligne de commande et exécuter les commandes suivantes:

mkdir baeldung cd baeldung roo quit

Après quelques secondes, nous verrons:

 _ ___ _ __ _ __(_)_ __ __ _ _ __ ___ ___ / __| '_ \| '__| | '_ \ / _` | | '__/ _ \ / _ \ \__ \ |_) | | | | | | | (_| | | | | (_) | (_) | |___/ .__/|_| |_|_| |_|\__, | |_| \___/ \___/ |_| |___/ 2.0.0.RC1 Welcome to Spring Roo. For assistance press TAB or type "hint" then hit ENTER.

Roo est installé et fonctionne. Veuillez noter que la version de Spring Roo variera et que les étapes et les instructions peuvent dépendre de la version réelle utilisée.

Important: Spring Roo 2.0 n'est pas rétrocompatible avec 1.x.

2.3. Ajout et configuration de l'extension STS

Prêt à l'emploi, STS prend en charge le développement d'applications Spring et comprend des extensions prêtes à l'emploi. Cependant, l'extension Spring Roo n'est pas incluse. Par conséquent, nous devrons l'ajouter manuellement.

Dans STS, allons à Installer un nouveau logiciel et importons les signets vers les sites de logiciels disponibles . Actuellement, les signets se trouvent dans le dossier% ROO_HOME% \ conf . Une fois que nous avons importé les signets, nous pouvons rechercher simplement roo et installer la dernière version de Spring IDE Roo Support . Au final, il nous sera demandé de redémarrer STS.

Pour des étapes détaillées et à jour, nous pouvons toujours consulter la documentation de mise en route de Spring Roo.

Une fois que nous avons installé Roo Support dans STS, nous devons configurer l'extension. C'est aussi simple que de pointer Roo Support vers le dossier % ROO_HOME% . Encore une fois, Spring Roo Getting Started donne des étapes détaillées pour le faire.

Maintenant, nous pouvons aller à nouveau dans le menu de l'application «Fenêtre» et sélectionner Afficher la vue> Roo Shell.

3. Premier projet

3.1. Configurer un projet dans STS

Dans STS, ouvrons la fenêtre Roo Shell et cliquez sur l' icône Créer un nouveau projet Roo . Cela ouvrira une fenêtre Nouveau projet Roo .

Nous nommerons le projet roo et utiliserons com.baeldung comme nom de package de premier niveau. Nous pouvons laisser toutes les autres valeurs par défaut et procéder jusqu'à la fin pour créer un nouveau projet en utilisant Roo.

Dans STS, cela exécutera la commande suivante pour nous:

project setup --topLevelPackage com.baeldung --projectName "roo" --java 8 --packaging JAR

Comme déjà mentionné, nous n'avons pas besoin d'un IDE, et nous aurions pu exécuter cette commande depuis Roo Shell nous-mêmes! Pour plus de simplicité, nous utilisons les fonctionnalités intégrées de STS.

Si nous obtenons l'erreur suivante:

Could not calculate build plan: Plugin org.codehaus.mojo:aspectj-maven-plugin:1.8 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.codehaus.mojo:aspectj-maven-plugin:jar:1.8

le moyen le plus simple de résoudre ce problème est de modifier manuellement le fichier pom.xml et de mettre à jour aspectj.plugin.version de 1.8 à 1.9 :

1.9

À ce stade, il ne devrait pas y avoir d'erreurs dans le projet et il y aura quelques fichiers générés automatiquement pour nous.

3.2. Coquille Roo

Il est maintenant temps de se familiariser avec le Roo Shell. L'interface utilisateur principale de Spring Roo est, en fait, une invite de commande!

Par conséquent, revenons à la fenêtre Roo Shell. Dans celui-ci, exécutons la première commande en tapant 'h' et en appuyant sur CTRL + ESPACE:

roo> h help hint

Roo suggérera et complétera automatiquement les commandes pour nous. Nous pouvons taper «salut», appuyer sur CTRL + ESPACE, et Roo suggérera automatiquement la commande d' indication .

Une autre fonctionnalité intéressante de Roo Shell est la prise en compte du contexte . Par exemple, la sortie de la commande hint changera en fonction de l'entrée précédente.

Exécutons maintenant la commande hint et voyons ce qui se passe:

roo> hint Roo requires the installation of a persistence configuration. Type 'jpa setup' and then hit CTRL+SPACE. We suggest you type 'H' then CTRL+SPACE to complete "HIBERNATE". After the --provider, press CTRL+SPACE for database choices. For testing purposes, type (or CTRL+SPACE) HYPERSONIC_IN_MEMORY. If you press CTRL+SPACE again, you'll see there are no more options. As such, you're ready to press ENTER to execute the command. Once JPA is installed, type 'hint' and ENTER for the next suggestion.

Cela nous donne les prochaines étapes que nous devons accomplir. Ajoutons maintenant une base de données:

roo> jpa setup --provider HIBERNATE --database HYPERSONIC_IN_MEMORY Created SRC_MAIN_RESOURCES\application.properties Updated SRC_MAIN_RESOURCES\application.properties Updated SRC_MAIN_RESOURCES\application-dev.properties Updated ROOT\pom.xml [added dependencies org.springframework.boot:spring-boot-starter-data-jpa:, org.springframework.boot:spring-boot-starter-jdbc:, org.hsqldb:hsqldb:; added property 'springlets.version' = '1.2.0.RC1'; added dependencies io.springlets:springlets-data-jpa:${springlets.version}, io.springlets:springlets-data-jpa:${springlets.version}; added dependencies io.springlets:springlets-data-commons:${springlets.version}, io.springlets:springlets-data-commons:${springlets.version}]

À ce stade, nous devrons exécuter certaines commandes. Entre chacun d'eux, nous pouvons toujours exécuter la commande hint pour voir ce qui est suggéré par Roo. C'est une fonctionnalité très utile.

Exécutons d'abord les commandes , et nous les passerons par la suite:

roo> entity jpa --class ~.domain.Book field string --fieldName title --notNull field string --fieldName author --notNull field string --fieldName isbn --notNull repository jpa --entity ~.domain.Book service --all web mvc setup web mvc view setup --type THYMELEAF web mvc controller --entity ~.domain.Book --responseType THYMELEAF

Nous sommes maintenant prêts à exécuter notre application. Cependant, revenons en arrière dans les commandes pour voir ce que nous avons fait.

First, we created a new JPA persistent entity in the src/main/java folder. Next, we created three String fields in Book class, gave them a name and set to be not null.

After that, we have generated Spring Data repository for the specified entity and created a new service interface.

In the end, we included Spring MVC configuration, installed Thymeleaf and created a new controller that manages our entity. Because we have passed Thymeleaf as the response type, the generated methods and views will reflect this.

3.3. Running the Application

Let's refresh the project and right click on roo project and select Run As > Spring Boot App.

Once the application has started, we can open a web browser and go to //localhost:8080. Next, to Roo icon, we will see Book menu and underneath two options: Create Book and List Books. We can use this to add a book to our application and view the list of added books.

3.4. Other Features

When we open Book.java class file, we'll notice that the class is annotated with @Roo annotations. These were added by Roo Shell and are used to control and customize the content of AspectJ inter-type declaration (ITD) files. We can view the files in Package Explorer in STS by unselecting “Hide generated Spring Roo ITDs” filter in View Menu, or we can open the files directly from the file system.

Roo annotations have SOURCE retention policy. This means the annotations won't be present in compiled class bytecode, and there won't be any dependency to Roo in deployed applications.

Another, obviously missing part in the Book.java class are getters and setters. These are stored in separate AspectJ ITDs files, as already mentioned. Roo will actively maintain this boilerplate code for us. Therefore, changes to fields in any class will be automatically reflected in AspectJ ITDs as Roo is “monitoring” all changes – either done via Roo Shell or directly by a developer in IDE.

Roo will take care of the repetitive code like toString() or equals() methods too.

De plus, le framework peut être facilement supprimé du projet, évitant ainsi le blocage du fournisseur, en supprimant les annotations et en poussant AspectJ ITD vers le code Java standard.

4. Conclusion

Dans cet exemple rapide, nous avons réussi à installer et configurer Spring Roo dans STS et avons créé un petit projet.

Nous avons utilisé Roo Shell pour le configurer et n'avons pas eu besoin d'écrire une seule ligne de code Java réel! Et nous avons pu obtenir un prototype d'application fonctionnel en quelques minutes et Roo s'est occupé de tout le code standard pour nous.

Comme toujours, le code utilisé tout au long de la discussion se trouve à l'adresse over sur GitHub.