🛢️Parcours Fioul GroupéSpring Boot · Chapitre 07
Accueil › Spring Boot › Chapitre 07
Chapitre 07 / 19

Spring Boot — la partie Services

La couche qui porte la logique métier. On y applique le clean code et les principes SOLID, et on comprend l'injection de dépendances comme outil de découplage.

1 Notion

Le rôle de la couche service

Le service décide : il applique les règles métier, orchestre les appels au repository, transforme entités ↔ DTO. C'est le seul endroit où vit la logique — pas dans le contrôleur, pas dans le repository.

@Service déclare la classe comme un bean géré par Spring.

2 Bonne pratique

L'injection par constructeur

On injecte les dépendances via le constructeur (et non par champ) : c'est testable, immuable (final) et explicite.

@Service
public class CampagneService {
    private final CampagneRepository repo;
    private final FournisseurRepository fournisseurs;
    public CampagneService(CampagneRepository r, FournisseurRepository f) {
        this.repo = r; this.fournisseurs = f;
    }
}
3 Notion

Un aperçu de SOLID

Cinq principes pour un code maintenable :

En pratique — le « D » est exactement ce que fait l'injection Spring : le service dépend de l'interface CampagneRepository, pas d'une implémentation concrète.
4 Notion

Transactions

@Transactional garantit qu'un ensemble d'opérations réussit ou échoue en bloc. (Support selon la base : MongoDB gère les transactions multi-documents sur un replica set / Atlas.)

🛢️ Sur le projet Fioul Groupé

Prépare CampagneService avec ses dépendances injectées par constructeur. Au chapitre 8, on y écrit les vraies règles : rejoindre une campagne, calculer le palier, refuser une campagne clôturée.

À retenir
  • Le service porte la logique métier ; @Service.
  • Injection par constructeur (testable, final).
  • SOLID pour la maintenabilité ; @Transactional pour l'atomicité.
← Chapitre 06