Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Spring MVC | Spring Boot Grundlagen
Spring Boot Backend
course content

Kursinhalt

Spring Boot Backend

Spring Boot Backend

1. Grundlagen der Backend-Entwicklung
2. Spring Boot Grundlagen
3. RESTful API
4. Arbeiten mit Datenbanken
5. Testen von Backend-Anwendungen

book
Spring MVC

Warum Sie Spring MVC benötigen

Spring MVC hilft, eine Webanwendung zu organisieren, indem es das Prinzip der Trennung von Anliegen befolgt, was die Entwicklung, das Testen und die Wartung von Code erleichtert. Es bietet ein Framework zum Erstellen von Webseiten und zum Bearbeiten von Benutzeranfragen sowie zur Integration mit Geschäftslogik und Datenbanken.

In unserer Anwendung nutzen wir eine Drei-Schichten-Architektur, um die Logik in unterschiedliche Module zu trennen. Wir haben die repository, service und controller Schichten. Diese Trennung erleichtert die Wartung und das Testen der Anwendung.

Wichtige Anmerkungen und ihre Rolle

Für jede Schicht haben wir spezifische Anmerkungen, die für Spring unerlässlich sind, um Komponenten im Anwendungskontext automatisch zu erkennen und zu registrieren (wir werden später besprechen, was das bedeutet). Dies hilft, eine sauberere Architektur zu bewahren und verbessert die Lesbarkeit des Codes.

Repository Layer Annotation

Die @Repository Annotation wird verwendet, um eine Klasse zu kennzeichnen, die mit der Datenbank interagiert. Diese Klassen enthalten typischerweise Methoden zur Durchführung von CRUD-Operationen (Create, Read, Update, Delete).

java

UserRepository

copy
1234567
@Repository public class UserRepository { // Method to find a user by their ID public User findById(Long id) { // Logic to retrieve the user from the database } }

In diesem Beispiel ist UserRepository als Repository markiert, was es Spring ermöglicht, datenbankbezogene Ausnahmen zu behandeln und es automatisch in die Anwendung zu integrieren.

Service Layer Annotation

Die @Service Annotation wird verwendet, um eine Klasse als Komponente der Geschäftslogik zu kennzeichnen. Diese Klassen enthalten Methoden, die die Geschäftsregeln und Operationen der Anwendung implementieren.

java

UserService

copy
1234567
@Service public class UserService { // Method to retrieve a user by their ID public User getUserById(Long id) { // Logic to get the user by ID } }

Die @Service Annotation zeigt an, dass diese Klasse die Geschäftslogik der Anwendung enthält, was es einfach macht, sie in anderen Teilen der Anwendung zu verwenden. Dies vereinfacht die Entwicklung, da Sie nicht manuell Instanzen dieser Klasse erstellen müssen — Spring übernimmt das für Sie.

Controller-Schicht-Annotation

Da die Controller-Schicht als Interaktionspunkt zwischen dem Client und unserer Anwendung dient, müssen wir Endpunkte einrichten, damit Clients darauf zugreifen können. Dies beinhaltet das Zuordnen spezifischer URLs zu jeder Methode, sodass Clients direkt mit diesen Methoden interagieren können.

Um dies zu erreichen, müssen wir die Klasse als @Controller annotieren und eine Methode definieren, die als Anfrage-Handler fungiert.

java

Main

copy
12345678
@Controller public class HomeController { @RequestMapping(value = "/", method = RequestMethod.GET) public String home() { // code } }

Die @RequestMapping Annotation wird verwendet, um HTTP-Anfragen mit spezifischen Methoden im Controller zu verknüpfen. Sie hilft dabei, festzulegen, auf welche URL-Muster und Arten von Anfragen (wie GET oder POST) eine Methode reagieren soll. Zum Beispiel wird in diesem Fall die home() Methode auf GET Anfragen an die Root-URL reagieren.

Wenn ein Benutzer example.com/ besucht, sendet sein Browser eine HTTP GET-Anfrage an den Server, die die Spring-Anwendung erreicht. Das Spring-Framework findet die passende @RequestMapping im HomeController, ruft die home() Methode auf, um die Anfrage zu bearbeiten, und sendet dann die entsprechende Antwort zurück an den Browser des Benutzers.

Es gibt Annotationen, die eine präzisere Zuordnung für den Typ der Anfragemethode bieten, wie @GetMapping, @PostMapping, @DeleteMapping und so weiter. In ihren Attributen geben Sie einfach die URL an, die verwendet werden kann, um sie zu erreichen.

java

Main

copy
12345678
@Controller public class HomeController { @GetMapping("/home") public String home() { // code } }

In diesem Beispiel, wenn wir auf die URL /home zugreifen, werden wir zur home() Methode NUR weitergeleitet, wenn es sich um eine GET-Anfrage handelt. Wenn ein anderer Typ von Anfragemethode verwendet wird, antwortet der Server mit einem 404 Not Found Fehler für diese URL.

@RequestParam

Was sind URL-Anforderungsparameter? Dies sind die Parameter, die nach dem Fragezeichen in der URL erscheinen. Zum Beispiel, wenn wir die Adresse -> example.com/home?name=Alex (Schlüssel = name, Wert = Alex) haben, können wir den Parameter (name) direkt in der welcomeUser() Methode abrufen.

java

Main

copy
12345678
@Controller public class WelcomeController { @GetMapping("/home") public String welcomeUser(@RequestParam(name = "name") String name) { // code } }

Hier wird der Parameter name aus der URL (/home?name=Alex) extrahiert und an die Methode welcomeUser() übergeben.

Sie können auch mehr als einen Parameter extrahieren, nicht nur einen einzelnen. Alle Parameter in der URL sollten durch das &-Symbol getrennt werden. Zum Beispiel: example.com/home?name=Alex&age=20.

java

Main

copy
12345
@GetMapping("/home") public String getUserInfo(@RequestParam String name, @RequestParam int age) { // Logic to handle the request using 'name' and 'age' parameters return "User Name: " + name + ", Age: " + age; }

In diesem Beispiel kann auf den Endpunkt /home mit einer URL wie example.com/home?name=Alex&age=20 zugegriffen werden, wobei name und age die an die Methode übergebenen Parameter sind.

@PathVariable

In Spring MVC wird die @PathVariable Annotation verwendet, um eine Variable in der URL direkt an einen Methodenparameter zu binden. Sie ermöglicht es, dynamische Werte aus der URL zu erfassen und innerhalb der Methode zu verwenden.

Wenn Sie eine URL dynamisch festlegen müssen, indem Sie einen Wert direkt in der URL selbst übergeben, können Sie die @PathVariable Annotation verwenden.

Zum Beispiel, wenn Sie ein URL-Muster wie /users/{id} haben, können Sie @PathVariable verwenden, um auf den {id}-Teil der URL zuzugreifen und ihn als Parameter an Ihre Methode zu übergeben.

java

Main

copy
12345678
@Controller public class UserController { @GetMapping("/user/{id}") public String getUser(@PathVariable("id") Long userId) { // code } }

In diesem Beispiel wird id aus der URL (/user/123) extrahiert und an die getUser()-Methode übergeben, wobei der Wert 123 dem userId-Parameter zugewiesen wird.

Diese Annotationen helfen Entwicklern, die HTTP-Anfrage-Verarbeitung einfach zu konfigurieren, Daten an Objekte zu binden und Antworten zu verwalten, was die Lesbarkeit und Wartbarkeit des Codes verbessert.

Zusammenfassung

Spring MVC vereinfacht die Entwicklung von Webanwendungen, indem es die Anfragebearbeitung, die Anwendungslogik und das Rendering der Ansicht trennt. Controller, die mit der @Controller- oder @RestController-Annotation markiert sind, bearbeiten Anfragen und liefern Daten zur Anzeige.

1. Was bewirkt die @Controller-Annotation in Spring MVC?

2. Welche Annotationsmethode wird verwendet, um GET requests in Spring MVC zu bearbeiten?

Was bewirkt die `@Controller`-Annotation in Spring MVC?

Was bewirkt die @Controller-Annotation in Spring MVC?

Wählen Sie die richtige Antwort aus

Welche Annotationsmethode wird verwendet, um `GET requests` in Spring MVC zu bearbeiten?

Welche Annotationsmethode wird verwendet, um GET requests in Spring MVC zu bearbeiten?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 3
We're sorry to hear that something went wrong. What happened?
some-alt