Architecture à Trois Niveaux
Cela permet de séparer la logique spécifique dans 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. Ensuite, la réponse est renvoyée dans l'ordre inverse : Repository -> Service -> Controller. Nous commencerons l'implémentation par la couche Repository.
Niveau Repository
Il s'agit de 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.java
1234@Repository public class RepositoryLevel { // connect DB }
Exemple d'utilisation du Repository
Niveau Service
C'est ici que se trouve la logique centrale de l'application. Dans les services, les données sont traitées ou modifiées avant d'être transmises à la couche repository.
Pour les services, l'annotation @Service est utilisée, ce qui déclare la classe comme un service contenant la logique métier.
Main.java
1234567@Service public class ServiceLevel { public void logic() { //TODO: write business logic } }
Exemple d'utilisation du service
Niveau 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 la réception des données fournies par le client.
Elle traite les requêtes HTTP entrantes et renvoie les réponses HTTP. Les contrôleurs servent de « pont » entre le client et la logique métier.
À ce niveau, il existe deux annotations utilisées pour désigner une classe comme contrôleur :
-
@RestController: Déclare une classe comme contrôleur REST, qui gère les requêtes HTTP et renvoie les données au format JSON ; -
@Controller: Déclare une classe comme contrôleur MVC, qui gère les requêtes et renvoie des vues (par exemple, HTML).
Main.java
12345678@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 l’on ajoute le chemin spécifié /root au domaine, et en retour, on reçoit 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 répertoire Maven.
Mais que se passe-t-il si cette approche n'est pas suivie ?
Techniquement, rien ne se passe. Même si toute la logique métier est écrite dans le contrôleur, que la connexion à la base de données s'effectue à cet endroit, et que la réponse est renvoyée au client depuis le même endroit, tout fonctionnera de la même manière.
Cependant, il sera difficile de se souvenir de ce qui a été écrit à cet endroit après quelques semaines, car toute la logique de l'application sera regroupée au même endroit, ce qui est extrêmement peu pratique.
Résumé
L’architecture à trois niveaux offre une séparation claire des préoccupations entre les couches de controllers, services et repositories, ce qui rend le processus de développement plus organisé et facile à maintenir.
Chaque couche se concentre sur sa tâche spécifique, ce qui simplifie à la fois le flux de travail et la gestion du projet.
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Awesome!
Completion rate improved to 3.45
Architecture à Trois Niveaux
Glissez pour afficher le menu
Cela permet de séparer la logique spécifique dans 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. Ensuite, la réponse est renvoyée dans l'ordre inverse : Repository -> Service -> Controller. Nous commencerons l'implémentation par la couche Repository.
Niveau Repository
Il s'agit de 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.java
1234@Repository public class RepositoryLevel { // connect DB }
Exemple d'utilisation du Repository
Niveau Service
C'est ici que se trouve la logique centrale de l'application. Dans les services, les données sont traitées ou modifiées avant d'être transmises à la couche repository.
Pour les services, l'annotation @Service est utilisée, ce qui déclare la classe comme un service contenant la logique métier.
Main.java
1234567@Service public class ServiceLevel { public void logic() { //TODO: write business logic } }
Exemple d'utilisation du service
Niveau 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 la réception des données fournies par le client.
Elle traite les requêtes HTTP entrantes et renvoie les réponses HTTP. Les contrôleurs servent de « pont » entre le client et la logique métier.
À ce niveau, il existe deux annotations utilisées pour désigner une classe comme contrôleur :
-
@RestController: Déclare une classe comme contrôleur REST, qui gère les requêtes HTTP et renvoie les données au format JSON ; -
@Controller: Déclare une classe comme contrôleur MVC, qui gère les requêtes et renvoie des vues (par exemple, HTML).
Main.java
12345678@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 l’on ajoute le chemin spécifié /root au domaine, et en retour, on reçoit 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 répertoire Maven.
Mais que se passe-t-il si cette approche n'est pas suivie ?
Techniquement, rien ne se passe. Même si toute la logique métier est écrite dans le contrôleur, que la connexion à la base de données s'effectue à cet endroit, et que la réponse est renvoyée au client depuis le même endroit, tout fonctionnera de la même manière.
Cependant, il sera difficile de se souvenir de ce qui a été écrit à cet endroit après quelques semaines, car toute la logique de l'application sera regroupée au même endroit, ce qui est extrêmement peu pratique.
Résumé
L’architecture à trois niveaux offre une séparation claire des préoccupations entre les couches de controllers, services et repositories, ce qui rend le processus de développement plus organisé et facile à maintenir.
Chaque couche se concentre sur sa tâche spécifique, ce qui simplifie à la fois le flux de travail et la gestion du projet.
Merci pour vos commentaires !