Contenu du cours
Backend Spring Boot
Backend Spring Boot
Architecture à Trois Niveaux
Cela est fait pour séparer la logique spécifique en différentes classes/packages, plutôt que de tout écrire dans une seule classe.
L'ordre dans lequel une requête est traitée est Controller
→ Service
→ Repository
. Après cela, la réponse est retournée dans l'ordre inverse : Repository
-> Service
-> Controller
. Nous commencerons l'implémentation avec la couche Repository
.
Niveau du Référentiel
C'est la couche la plus basse, où nous recevons les données traitées de la couche Service
et les stockons dans notre base de données.
Ces classes sont marquées avec l'annotation @Repository
pour être ajoutées au contexte Spring.
Main
@Repository public class RepositoryLevel { // connect DB }
Exemple d'utilisation du dépôt
Niveau de Service
C'est ici que se déroule la logique centrale de l'application. Dans les services, nous traitons ou modifions les données avant de les transmettre à la couche de dépôt.
Pour les services, nous utilisons l'annotation @Service
, qui déclare la classe comme un service
contenant la logique métier.
Main
@Service public class ServiceLevel { public void logic() { //TODO: write business logic } }
Exemple d'utilisation du service
Niveau du contrôleur
Cette couche gère l'interaction initiale entre le client et le serveur. Toutes les requêtes envoyées par le client arrivent ici, et elle est responsable de recevoir les données fournies par le client.
Elle traite les requêtes HTTP entrantes et renvoie des réponses HTTP. Les contrôleurs agissent comme un "pont" entre le client et la logique métier.
À ce niveau, il y a deux annotations utilisées pour désigner une classe comme un contrôleur :
-
@RestController
: Déclare une classe comme un contrôleur REST, qui gère les requêtes HTTP et renvoie les données au format JSON; -
@Controller
: Déclare une classe comme un contrôleur MVC, qui gère les requêtes et renvoie des vues (par exemple, HTML).
Main
@Controller public class ControllerLevel { @GetMapping("/root") public String getPage() { return "template"; } }
L'annotation @GetMapping
spécifie l'URL pour une requête donnée. Cela signifie que nous ajoutons le chemin spécifié /root
au domaine, et en retour, nous recevons la page correspondante.
Exemple d'utilisation du contrôleur
La dépendance Thymeleaf de la vidéo
Voici le lien vers la dépendance Thymeleaf dans le dépôt Maven.
Mais que se passe-t-il si vous ne suivez pas cette approche ?
Eh bien, techniquement, rien. Même si vous écrivez toute la logique métier dans le contrôleur, vous connectez à la base de données là-bas, et retournez la réponse au client depuis le même endroit, tout fonctionnera de la même manière.
Cependant, il est peu probable que vous vous souveniez de ce que vous avez écrit là après quelques semaines, car toute la logique de l'application sera en un seul endroit, ce qui est incroyablement peu pratique.
Résumé
L'architecture à trois niveaux offre une séparation claire des préoccupations entre les couches de controllers
, services
et repositories
, rendant le processus de développement plus organisé et plus facile à maintenir.
Chaque couche se concentre sur sa tâche spécifique, ce qui simplifie à la fois le flux de travail et la gestion de projet.
Merci pour vos commentaires !