Kursinhalt
Spring Boot Backend
Spring Boot Backend
Drei-Ebenen-Architektur
Dies wird getan, um spezifische Logik in verschiedene Klassen/Pakete zu trennen, anstatt alles in einer einzigen Klasse zu schreiben.
Die Reihenfolge, in der eine Anfrage verarbeitet wird, ist Controller
→ Service
→ Repository
. Danach wird die Antwort in umgekehrter Reihenfolge zurückgegeben: Repository
-> Service
-> Controller
. Wir beginnen die Implementierung mit der Repository
-Schicht.
Repository-Ebene
Dies ist die niedrigste Schicht, in der wir verarbeitete Daten von der Service
-Schicht erhalten und in unserer Datenbank speichern.
Diese Klassen sind mit der @Repository
-Annotation markiert, um dem Spring-Kontext hinzugefügt zu werden.
Main
@Repository public class RepositoryLevel { // connect DB }
Beispiel für die Verwendung des Repository
Service-Ebene
Hier findet die Kernlogik der Anwendung statt. In Services verarbeiten oder modifizieren wir Daten, bevor wir sie an die Repository-Schicht weitergeben.
Für Services verwenden wir die @Service
Annotation, die die Klasse als service
deklariert, der die Geschäftslogik enthält.
Main
@Service public class ServiceLevel { public void logic() { //TODO: write business logic } }
Beispiel für die Verwendung des Dienstes
Controller-Ebene
Diese Schicht behandelt die anfängliche Interaktion zwischen dem Client und dem Server. Alle Anfragen, die vom Client gesendet werden, kommen hier an, und sie ist verantwortlich für den Empfang der vom Client bereitgestellten Daten.
Sie verarbeitet eingehende HTTP-Anfragen und gibt HTTP-Antworten zurück. Controller fungieren als "Brücke" zwischen dem Client und der Geschäftslogik.
Auf dieser Ebene gibt es zwei Anmerkungen, die eine Klasse als Controller kennzeichnen:
-
@RestController
: Deklariert eine Klasse als REST-Controller, der HTTP-Anfragen verarbeitet und Daten im JSON-Format zurückgibt; -
@Controller
: Deklariert eine Klasse als MVC-Controller, der Anfragen verarbeitet und Ansichten (z.B. HTML) zurückgibt.
Main
@Controller public class ControllerLevel { @GetMapping("/root") public String getPage() { return "template"; } }
Die @GetMapping
Annotation gibt die URL für eine gegebene Anfrage an. Das bedeutet, dass wir den angegebenen Pfad /root
zur Domain hinzufügen und im Gegenzug die entsprechende Seite erhalten.
Beispiel für die Verwendung des Controllers
Die Thymeleaf-Abhängigkeit aus dem Video
Hier ist der Link zur Thymeleaf-Abhängigkeit im Maven-Repository.
Aber was passiert, wenn Sie diesen Ansatz nicht befolgen?
Nun, technisch gesehen, nichts. Selbst wenn Sie die gesamte Geschäftslogik im Controller schreiben, sich dort mit der Datenbank verbinden und die Antwort an den Client vom selben Ort aus zurückgeben, wird alles gleich funktionieren.
Allerdings werden Sie sich wahrscheinlich nicht daran erinnern, was Sie dort geschrieben haben, nach ein paar Wochen, weil die gesamte Anwendungslogik an einem Ort sein wird, was unglaublich unpraktisch ist.
Zusammenfassung
Die Drei-Schichten-Architektur bietet eine klare Trennung der Anliegen zwischen den Schichten von controllers
, services
und repositories
, was den Entwicklungsprozess organisierter und leichter wartbar macht.
Jede Schicht konzentriert sich auf ihre spezifische Aufgabe, was sowohl den Arbeitsablauf als auch das Projektmanagement vereinfacht.
Danke für Ihr Feedback!