Lancez-vous dans cette deuxième partie du cours
Dans cette partie de cours, nous allons ensemble découvrir les étapes clés pour tout projet Spring Boot. Cette partie est construite comme une sorte de mode d’emploi, auquel vous pouvez vous référer quelle que soit l’application que vous réalisez !
Créons ensemble le fameux “Hello World” avec Spring Boot !
Tout d’abord, voici le plan d’action pour tout projet Spring Boot :
Créer le projet, c’est-à-dire générer la structure minimale.
Structurer et configurer le projet.
Écrire le code.
Tester et déployer.
Chaque étape du plan d’action correspond à un chapitre de cette partie du cours. Et les 2 parties de cours suivantes sont construites sur la base des mêmes étapes.
C’est parti pour la première étape : créons notre projet !
Découvrez les starters
On commence par quoi ?
La première étape implique de générer la base de votre projet. Vous devez savoir qu’on ne commence pas sur une feuille blanche. Spring Boot nous fournit une base de travail que l’on peut nommer la structure minimale. On enrichira ensuite cette structure minimale en fonction des besoins de notre projet.
Pour obtenir cette structure minimale, il y a plusieurs solutions que l’on explorera dans la suite du chapitre. Mais avant de foncer tête baissée, sachez que Spring Boot va vous demander un certain nombre d’informations, comme :
la version de Java ;
Maven ou Gradle ;
la version de Spring Boot ;
des informations sur le projet (groupId, artifactId, nom du package) ;
les dépendances.
Pour les premiers éléments, ce ne sera pas difficile ; ça pourrait par contre le devenir pour le choix des dépendances, car Spring Boot utilise quelque chose de nouveau : les starters de dépendances.
J’ai déjà eu l’occasion dans la partie précédente de vous en parler, mais un rappel ne fera pas de mal.
Spring Framework se découpe en de nombreux composants ; les utiliser implique de renseigner les bonnes dépendances pour notre projet. Ce n’est pas facile, car il faut savoir quelle dépendance est nécessaire à quelle autre dépendance, s’il y a des incompatibilités, et quelles sont les versions à utiliser.
Pour résoudre cette problématique, Spring Boot nous offre les starters de dépendances qui sont des kits de dépendances (vous vous souvenez de mon exemple avec les gammes de meubles, voilà ! ).
Par exemple, le starter spring-boot-starter-data-jpa va vous apporter différents JAR pour utiliser Spring et JPA, afin de communiquer avec une base de données.
Tous les starters sont préfixés par “spring-boot-starter”. Voici quelques exemples de starters :
spring-boot-starter-core ;
spring-boot-starter-data-jpa ;
spring-boot-starter-security ;
spring-boot-starter-test ;
spring-boot-starter-web.
Comment choisir les bons starters pour mon projet ?
Normalement, la description du starter est suffisante pour identifier si ce dernier est ce dont vous avez besoin ou non. Sans oublier que la documentation officielle de Spring saura toujours vous guider vers le bon starter en fonction de vos besoins.
Il n’y rien de plus à savoir sur la question, je crois qu’il est temps de pratiquer !
Il existe deux façons de créer un projet : avec Spring Initializr et avec Spring Tool suite. Nous allons aborder ces deux approches ensemble !
Créez votre projet avec Spring Initializr
Voyons comment utiliser le site web Spring Initializr.
Laissez-moi vous montrer son fonctionnement :
C’était vraiment facile, n’est-ce pas ? 🙂 Récapitulons les étapes :
J’ai laissé par défaut Project / Language et Spring Boot.
J’ai saisi les informations suivantes dans Project Metadata :
Group: com.openclassrooms.
Artifact: HelloWorld.
Name: HelloWorld.
Description: Hello World project with Spring Boot.
Package name: com.openclassrooms.helloworld.
Packaging: Jar.
Java: 8.
Aucune dépendance à ajouter, car le starter “spring-boot-starter”, qui contient toutes les fonctionnalités de base, est ajouté par défaut. J’ai cliqué sur “Generate”, et une archive ZIP avec le projet a été téléchargée. Après avoir dézippé l’archive, j’ai tout simplement importé ce projet existant dans mon IDE.
Voilà, notre première étape est finie !
Créez votre projet avec Spring Tool Suite
Une deuxième façon d'atteindre le même résultat correspond à l’utilisation de l’outil Spring Tool Suite, téléchargeable ici.
Je vous conseille Spring Tools 4 for Eclipse. Il est téléchargeable sur Linux, macOS et Windows. Vous obtenez un JAR qui, une fois exécuté, va créer un répertoire qui aura un nom du style “sts-4.7.1.RELEASE”. Au sein de ce répertoire, vous pouvez lancer l’exécutable “SpringToolSuite4.exe”.
Laissez-moi maintenant vous montrer son fonctionnement :
Avez-vous remarqué qu’on retrouve les mêmes étapes, mais cette fois à travers un outil installé sur votre poste de travail, et non via un site web ?
Mais pourquoi utiliser Spring Tool Suite et non Spring Initializr, qui ne demande aucun outil supplémentaire ?
Pour la simple raison que STS (Spring Tool Suite) nous offre une fonctionnalité supplémentaire : le “Boot Dashboard”, qui permet de gérer plus précisément le cycle de vie de l’exécution de l’application. Et comme STS est tout simplement un Eclipse customisé, on peut directement développer notre projet au sein de l’outil. Assez pratique, finalement.
Pour finir cette partie, je vous encourage à jeter un œil au fichier pom.xml (à la racine de la structure du projet). Vous y retrouverez tous les éléments saisis lors de la génération de votre projet. En voici d’ailleurs 2 extraits :
Extrait de la description du projet :
<groupId>com.openclassrooms</groupId>
<artifactId>helloworld</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>helloworld</name>
<description>Hello World project with Spring Boot</description>
Extrait des dépendances du projet :
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
….
</dependencies>
En résumé
La première étape pour utiliser Spring Boot est de créer la structure minimale.
On obtient la structure minimale en fournissant plusieurs informations, dont les starters de dépendances.
Un projet Spring Boot peut être créé via Spring Initializr ou bien via Spring Tool Suite.
Nous avons parcouru la première étape : la création du projet. Avant de passer la deuxième étape, qui consiste à structurer et configurer le projet, laissez-moi faire un arrêt sur image : dans le prochain chapitre, nous allons analyser la structure minimale et découvrir pourquoi il est si important de structurer son projet. Allons-y !