Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Architecture à Trois Niveaux | Notions de Base de Spring Boot
Spring Boot Backend

bookArchitecture à 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 ControllerServiceRepository. 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

Main.java

copy
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

Main.java

copy
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

Main.java

copy
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.

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 5

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

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

bookArchitecture à 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 ControllerServiceRepository. 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

Main.java

copy
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

Main.java

copy
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

Main.java

copy
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.

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 5
some-alt