Skip to main content

Welcome to a Grasp lesson

Create a free account to keep studying and create your own study path.

Lesson 59

Démarrer un projet Spring Boot avec Spring Initializr

Recommended resources

Bonjour ! Dans la leçon précédente, nous avons solidement ancré les concepts fondamentaux de Spring : l'Inversion de Contrôle (IoC) et l'Injection de Dépendances (DI). Vous avez compris que Spring agit comme un conteneur qui gère le cycle de vie de nos objets (les beans) et injecte leurs dépendances, favorisant ainsi un code modulaire et faiblement couplé. Nous avons également vu que l'injection par constructeur est la méthode privilégiée par les professionnels.

Aujourd'hui, nous passons de la théorie à la pratique. Nous allons créer notre toute première application Spring Boot. Cette leçon vous guidera pour initialiser un projet de manière professionnelle et pour comprendre la structure standard qui en découle.

À la fin de cette leçon, vous serez en mesure d'initialiser un projet Spring Boot avec Spring Initializr et de comprendre sa structure. C'est la première étape concrète pour construire n'importe quelle application backend en Java avec cet écosystème.

1. Qu'est-ce que Spring Initializr ?

Avant de coder, il faut créer le squelette du projet. Historiquement, cette étape était manuelle, fastidieuse et source d'erreurs. Pour résoudre ce problème, l'équipe de Spring a créé Spring Initializr. C'est un outil en ligne qui génère pour vous un projet Spring Boot prêt à l'emploi.

Il s'occupe de :

  • Créer la structure de dossiers standard.
  • Configurer le fichier de build (nous utiliserons Maven).
  • Ajouter les dépendances de base (les "starters") dont vous avez besoin.

Puisque vous avez de l'expérience avec le développement web, vous pouvez voir Spring Initializr comme un équivalent de create-react-app pour React ou des générateurs de projet comme symfony new pour PHP. Il assure que vous démarriez sur des bases saines et conventionnelles.

L'article suivant de CertiQuizz présente cet outil de manière claire.

Utilisation de Spring Initializr (web ou via IDE) pour générer un projet

Cet article explique le rôle de Spring Initializr et comment l'utiliser, que ce soit via son interface web ou directement depuis un IDE.

Lisez la section "Qu'est-ce que Spring Initializr et pourquoi l'utiliser ?" pour bien comprendre ses avantages. Ensuite, parcourez la section "Générer un projet directement depuis votre IDE" pour voir comment cet outil est intégré dans IntelliJ IDEA, ce qui est la méthode la plus courante en entreprise. Nous utiliserons l'interface web pour cette première fois afin de bien visualiser toutes les options.


2. Création de notre premier projet

Passons à l'action. Nous allons utiliser l'interface web start.spring.io pour générer notre projet.

Voici à quoi ressemble l'interface de Spring Initializr. On y configure les métadonnées du projet, le langage, la version, et surtout les dépendances.

La vidéo suivante montre le processus de création pas à pas. Regardez-la attentivement, puis nous détaillerons chaque option ensemble.

Création d'une API REST avec Spring Boot | Projet CRUD Spring Boot, Spring Data/Hibernate, MySQL

Cette vidéo du youtuber "Autour Du Code" montre de manière concise comment générer un projet Spring Boot en utilisant le site start.spring.io.

Regardez la section de création du projet. Concentrez-vous sur les options qu'il choisit : projet Maven, langage Java, métadonnées du projet, et l'ajout des dépendances.

Maintenant, rendez-vous sur start.spring.io et configurez votre projet avec les options suivantes :

  • Project: Maven (c'est le gestionnaire de build et de dépendances que nous utiliserons dans ce cours).
  • Language: Java.
  • Spring Boot: Laissez la version par défaut sélectionnée (généralement la dernière version stable, non-SNAPSHOT).
  • Project Metadata:
    • Group: com.votreentreprise. C'est un identifiant unique qui suit la convention du nom de domaine inversé. Remplacez votreentreprise par un nom qui vous est propre.
    • Artifact: mon-api-rest. C'est le nom de votre projet.
    • Name: mon-api-rest.
    • Description: Première API REST avec Spring Boot.
    • Package name: Il sera automatiquement généré à partir du Group et de l'Artifact (com.votreentreprise.monapirest). C'est le package de base de votre application.
  • Packaging: Jar. Cela signifie que notre application sera empaquetée comme un fichier .jar exécutable avec un serveur web embarqué (Tomcat par défaut).
  • Java: 17. Spring Boot 3 et supérieur requiert Java 17 au minimum.
  • Dependencies: Cliquez sur "ADD DEPENDENCIES...". Pour l'instant, nous n'avons besoin que d'une seule dépendance pour créer une application web. Recherchez et ajoutez :
    • Spring Web: Ce "starter" inclut tout le nécessaire pour construire des applications web et des API REST, y compris le serveur Tomcat.

Une fois tout configuré, cliquez sur le bouton GENERATE. Un fichier .zip sera téléchargé. Décompressez-le dans le répertoire où vous stockez vos projets.


3. Comprendre la structure du projet

Maintenant que le projet est créé, ouvrons-le dans IntelliJ IDEA.

  1. Lancez IntelliJ IDEA.
  2. Choisissez Open.
  3. Naviguez jusqu'au dossier que vous venez de décompresser et sélectionnez-le. IntelliJ reconnaîtra le fichier pom.xml et configurera le projet comme un projet Maven.

Vous devriez voir une structure de fichiers similaire à celle-ci :

Cette image montre la structure de dossiers et de fichiers standard d'un projet Spring Boot. La clarté de cette organisation est l'un des points forts du framework.

Analysons les éléments les plus importants :

  • pom.xml : C'est le cœur de votre projet Maven. Il est l'équivalent du package.json en Node.js ou composer.json en PHP. Il contient :

    • Les métadonnées du projet (Group, Artifact, Version).
    • La version de Spring Boot (parent).
    • La liste de toutes vos dépendances (dans la balise <dependencies>). Vous y retrouverez spring-boot-starter-web.
  • src/main/java : Ce dossier contient tout votre code source Java.

    • À l'intérieur, vous trouverez votre package (com.votreentreprise.monapirest).
    • Dans ce package, il y a une classe nommée MonApiRestApplication.java. C'est le point d'entrée de votre application. Elle contient la méthode main et l'annotation @SpringBootApplication. Cette annotation magique déclenche l'auto-configuration de Spring Boot.
  • src/main/resources : Ce dossier est destiné aux fichiers de configuration et autres ressources non-Java.

    • application.properties : C'est ici que vous placerez les configurations de votre application, comme les informations de connexion à la base de données, le port du serveur, etc. Pour l'instant, il est vide.
    • static : Pour les fichiers statiques (CSS, JavaScript, images) si vous construisiez une application web traditionnelle.
    • templates : Pour les templates de vue (ex: Thymeleaf, FreeMarker) si vous faisiez du rendu côté serveur.
  • src/test/java : Ce dossier contient le code de vos tests unitaires et d'intégration. Spring Initializr y génère déjà un squelette de classe de test pour vous. Nous explorerons cette partie en détail dans le module sur JUnit.


4. Lancer l'application

Votre projet est pour l'instant une coquille vide, mais il est déjà une application fonctionnelle ! Lançons-la pour le vérifier.

La vidéo suivante montre comment ouvrir le projet et le démarrer, mais elle montre aussi une erreur initiale due à une configuration de base de données manquante. Ignorez cette partie sur l'erreur et la configuration de la BDD pour l'instant, et concentrez-vous sur le lancement réussi à la fin.

Application CRUD en 30 minutes | Tutoriel Étape par Étape | Spring Boot | MySQL

Cette vidéo de "Coding With Armand" montre comment importer et lancer le projet dans IntelliJ.

Suivez ces deux étapes : Observez comment il ouvre le projet dans l'IDE : Ouvrir le projet. Après avoir configuré sa base de données (ce que nous n'avons pas encore fait), il relance l'application avec succès. Regardez cette partie : Démarrage réussi.

Pour lancer votre propre application :

  1. Dans IntelliJ, trouvez votre classe principale MonApiRestApplication.java dans src/main/java.
  2. Faites un clic droit sur le fichier ou directement dans l'éditeur de code.
  3. Sélectionnez Run 'MonApiRestApplication.main()'.

Vous verrez la console s'activer en bas de l'IDE. Après quelques secondes, vous devriez voir des logs indiquant que Tomcat a démarré, généralement sur le port 8080. Une ligne similaire à celle-ci confirme que tout fonctionne :

Tomcat started on port(s): 8080 (http)

Félicitations ! Vous avez généré, compris et lancé votre première application Spring Boot.


Conclusion

Aujourd'hui, nous avons franchi une étape majeure en passant de la théorie à la pratique. Voici les points clés à retenir :

  • Spring Initializr est l'outil standard pour créer des projets Spring Boot, garantissant une structure cohérente et des dépendances bien gérées.
  • Un projet Spring Boot est structuré de manière logique : le code source dans src/main/java, les ressources dans src/main/resources, et les tests dans src/test/java.
  • Le fichier pom.xml est le descripteur de projet Maven, où les dépendances sont déclarées.
  • La classe annotée avec @SpringBootApplication contient la méthode main et sert de point de départ à l'application.

Vous disposez maintenant d'un squelette de projet fonctionnel. Pour l'instant, il ne fait rien d'utile, mais les fondations sont posées.

Dans la prochaine leçon, nous allons enfin donner vie à cette application. Nous allons créer nos premiers beans Spring (@RestController et @Service), implémenter notre première injection de dépendances par constructeur, et exposer un premier "endpoint" REST simple qui retournera un message. Les concepts d'IoC et de DI deviendront alors parfaitement concrets.