Spring, le framework
Spring est un framework Java pour bâtir des applications robustes. Son cœur repose sur le conteneur IoC (inversion de contrôle) qui crée et relie les objets à ta place. Autour, une galaxie de modules : Spring MVC (web), Spring Data (persistance), Spring Security (authentification)…
Ce qu'apporte Spring Boot
Spring Boot, c'est Spring « prêt à l'emploi » :
- Starters — des dépendances groupées et compatibles (
spring-boot-starter-web…). - Auto-configuration — Spring configure les composants d'après les dépendances présentes.
- Serveur intégré — l'appli est un
.jarexécutable qui démarre Tomcat sur le port 8080. - Actuator — endpoints de supervision prêts (chapitre 16).
L'injection de dépendances
Plutôt que de faire new, tes classes déclarent ce dont elles ont besoin ; Spring le leur fournit (les beans). Résultat : du code découplé et testable.
@Service public class CampagneService { private final CampagneRepository repo; public CampagneService(CampagneRepository repo) { this.repo = repo; } // injecté }
L'architecture en couches
Une API Spring s'organise en trois couches, chacune avec un rôle clair :
HTTP → Controller → Service → Repository → Base de données
Le contrôleur reçoit/renvoie, le service décide (logique métier), le repository accède aux données. On les construira une par une dans les chapitres suivants.
L'environnement de travail
- JDK 21 (Java), Maven (gestion des dépendances et build).
- Un IDE : IntelliJ IDEA ou VS Code.
- Spring Initializr (
start.spring.io) pour générer le projet.
Tu vas construire fioul-api : une API REST qui expose les campagnes stockées dans MongoDB (parcours 1) et que l'appli Flutter (parcours 3) consommera. Ce chapitre pose le décor ; dès le chapitre 2, on écrit du code.
- Spring = framework Java à base d'injection de dépendances (IoC).
- Spring Boot = starters + auto-configuration + serveur intégré.
- Architecture : Controller → Service → Repository.