1. Qu’est ce qu’un service?
Le service dans Spring Boot est une classe qui va vous rendre un… wait for it… SERVICE. Un service contient l’algorithme de votre application. C’est le chaînon manquant entre votre contrôleur et votre repository. Il vous permet de traduire les classes DTO en classes Model. Si l’on transpose cela dans le modèle MVC, le service correspond au rôle du contrôleur. Voilà donc ce que nous avons :
- Modèle <=> …Repository
- Vue <=> Contrôleur
- Contrôleur <=> Service
2. Création de notre Dto
Précédement dans « Créer son incroyable contrôleur« , nous avions créé une classe imbriquée « Truck ». Cette classe va nous servir de base pour notre classe Dto. Nous allons donc créer un package com.raphlys.dto
qui contiendra nos classes Data Transfer Object (DTO).
Les classes DTO permettent le transfert des informations entre nos contrôleurs et l’extérieur.
Nous créons alors la classe TruckDto
dans le package com.raphlys.dto
et nous y récupérons tout ce que nous avions dans notre classe imbriquée Truck
.
On supprime la classe imbriquée Truck
. Et là stupéfaction, un certain nombre d’erreur apparait.
Il suffit de remplacer Truck par TruckDto (ou un truc comme ça…), faire l’import nécessaire et là, magie du cinéma, ça fonctionne.
3. Création du service
On fait un nouveau package com.raphlys.dto.service
et une nouvelle Classe à l’intérieur TruckService
. Voici cette classe :
Une classe normale (non pas qu’il y ait des classes anormales) en somme, mais qui a l’annotation @Service
qui permet de dire à Spring Boot qu’il va falloir l’instancier et l’injecter dans une autre classe. Voyons tout de suite comment injecter le service dans le contrôleur grâce à l’annotation @Autowired
.
Et voilà, comme papa dans maman, votre Service est injecté dans votre Contrôleur. Maintenant on enlève l’intelligence du contrôleur pour la mettre dans le service.
Ça peut paraître anecdotique, mais ça ne l’est pas. Ici, nous avons un projet simple. Mais ce n’est pas toujours le cas. Et quand vous regardez alors le Contrôleur, vous avez accès à toutes les méthodes qu’il propose. C’est pratique. Et on arrive à un état intermédiaire suivant :
- Modèle : Map
- Vue : Contrôleur (avec le Dto)
- Contrôleur : Service
Voilà, vous avez fait votre service pour gérer les Camions. Nous verrons prochainement comment faire son Repository. J’espère que ça vous a plu et que cela vous donne envie d’en savoir plus. Vous pouvez toujours utiliser Postman afin de vérifier que votre Service fonctionne toujours.
Laisser un commentaire