Remarquez l'absence de numero de version : le parent Spring Boot les choisit pour vous, en
garantissant leur compatibilite. C'est un gain de temps considerable.
3. La classe principale
@SpringBootApplication
public class GestionEtudiantsApplication {
public static void main(String[] args) {
SpringApplication.run(GestionEtudiantsApplication.class, args);
}
}
L'annotation @SpringBootApplication en regroupe trois :
Annotation
Role
@Configuration
Cette classe peut definir des composants
@EnableAutoConfiguration
Active l'auto-configuration
@ComponentScan
Cherche les composants dans ce package et ses sous-packages
Point important : le @ComponentScan explore le package de cette classe
et uniquement ses sous-packages. Placer une classe en dehors la rend invisible pour
Spring. C'est la cause numero un des « mon controleur ne repond pas ».
4. Lancer l'application
./mvnw spring-boot:run
# sous Windows
mvnw.cmd spring-boot:run
Vous pouvez aussi lancer la methode main depuis votre editeur. Dans la console,
cherchez :
Tomcat started on port 8080
Started GestionEtudiantsApplication in 2.1 seconds
5. Votre premier controleur
Creez une classe BonjourController dans le meme package que la classe principale :
package com.pandacodeur.gestionetudiants;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class BonjourController {
@GetMapping("/bonjour")
public String bonjour(@RequestParam(defaultValue = "visiteur") String nom) {
return "Bonjour " + nom + " !";
}
}
Spring Initializr genere le projet ; pom.xml declare les dependances
@SpringBootApplication regroupe trois annotations
Spring ne voit que le package principal et ses sous-packages
@RestController + @GetMapping suffisent pour repondre en HTTP
Exercices d'application
Exercice 1. Creer le projetGenerez le projet gestion-etudiants avec Spring Web, lancez-le et verifiez le message « Started… » dans la console.
Exercice 2. Trois routesAjoutez trois routes : /date qui renvoie la date du jour, /calcul?a=3&b=4 qui renvoie la somme, et /salut/{nom} avec @PathVariable.
Exercice 3. Provoquer l'erreurDeplacez votre controleur dans un package situe en dehors du package principal. Relancez : la route ne repond plus. Expliquez pourquoi, puis remettez-le en place.
Cherchez avant de regarder la solution : c'est en butant sur les difficultes que l'on progresse.
Questions / Réponses
Aucune question. Soyez le premier à poser une question.