Heim >Java >javaLernprogramm >Frühlings-MVC-Restaurant

Frühlings-MVC-Restaurant

DDD
DDDOriginal
2024-10-24 04:40:30281Durchsuche

Stellen Sie sich vor, Spring MVC ist nicht nur ein Framework, sondern eine Art Restaurant. Sie kommen ins Restaurant (senden Sie eine HTTP-Anfrage), und dann beginnt die Magie, und so geschieht es in der Welt von Spring MVC:

Sie betreten ein Restaurant – DispatcherServlet auf der Hut
Stellen Sie sich vor, Sie betreten das Restaurant Spring MVC. Doch bevor Sie an den Tisch gehen, werden Sie vom Chef-Portier – DispatcherServlet begrüßt. Er verkörpert den Front-End-Offizier und verwaltet alle Aufträge. Ihre HTTP-Anfrage ist wie Ihre erste Begrüßung an den Türsteher: Sie möchten etwas Leckeres.

Ресторан Spring MVC

DispatcherServlet bereitet das Essen nicht selbst zu, sondern leitet die Anfrage einfach an den gewünschten „Koch“, also Ihren Controller, weiter, der das Gericht zubereitet. Aber dazu etwas später mehr. Zuerst prüft der Portier die Speisekarte, um zu sehen, welcher Koch Ihnen das zubereiten kann, was Sie möchten.

Handler sucht Rezepte - HandlerMapping
Sobald Sie sagen: „Ich möchte etwas Leckeres!“, eilt der Türsteher (unser tapferer DispatcherServlet) nicht sofort in die Küche. Nein, zuerst öffnet er HandlerMapping, wo er alle möglichen Restaurantgerichte und den Koch hat, der sie zubereiten kann.

Sie bitten beispielsweise um einen Kuchen. Der Portier schaut auf seine Notizen und stellt fest, dass Chefkoch John die Kuchen vom ChefController aus backt.

Ресторан Spring MVC

Der Portier sendet die Bestellung an die Küche - HandlerAdapter
Sobald der Portier einen passenden Koch gefunden hat, nutzt er HandlerAdapter, seinen Assistenten, der dabei hilft, die Bestellung zu verpacken und sie in die Küche an den Koch zu übergeben. Es ist, als würde der Portier nur flüstern: „John, mach dem Kunden einen Kuchen, komm schnell!“

Der Koch bereitet das Gericht zu – Controller

Ресторан Spring MVC
Jetzt übernimmt Chefkoch John. Er ist unser Controller, der das Kochen übernimmt. Je nach Wunsch des Kunden kann er verschiedene Kuchen backen. Wenn die Anfrage beispielsweise GET lautete, kann John einfach die fertigen Kuchen zeigen (sie aus dem Kühlschrank nehmen). Und wenn die Anfrage POST lautet, haben Sie vielleicht nach einer frischen Sahnetorte gefragt, und John beginnt mit dem Kochen.

Beispiel:

@GetMapping("/cakes")
öffentliche Liste getCakes() {
return List.of("Napoleon", "Tiramisu", "Käsekuchen");
}
Dieser Koch zögert nicht, er verteilt sofort eine Liste mit Kuchen!

Geschirrdekoration – ViewResolver
Sobald das Gericht fertig ist, müssen Sie es schön präsentieren. Hier kommt ViewResolver ins Spiel. Er ist wie ein Tellergestalter: Er entscheidet, in welcher Form das Gericht dem Kunden serviert wird. Sie möchten nicht nur eine Menge Zutaten sehen, sondern einen wunderschön dekorierten Kuchen!

ViewResolver kann entscheiden, dass der Kuchen auf einem goldenen Teller (JSP) oder in einer Schachtel (JSON) serviert werden soll, wenn Sie ihn zum Mitnehmen bestellt haben.

Voila! Gericht auf Ihrem Tisch – HTTP-Antwort
Schließlich ist das Gericht fertig und wird serviert. Ihr Kunde (Browser) erhält eine Antwort vom Restaurant. Abhängig von Ihrer Bestellung kann dies eine HTML-Seite sein, die die Kuchen enthält, oder ein JSON-Objekt, wenn Sie über eine Take-Away-App bestellt haben.

Zum Beispiel hat Küchenchef John beschlossen, eine Liste mit Kuchen in JSON einzureichen:

@GetMapping("/cakes")
@ResponseBody
öffentliche Liste getCakes() {
return List.of("Tiramisu", "Napoleon", "Eclair");
}
Der Kunde erhielt JSON mit Kuchen und sein Leben wurde besser!

Was passiert, wenn etwas schiefgeht? – Ausnahmebehandlung

Ресторан Spring MVC
Wie in jedem Restaurant geht manchmal etwas schief. Zum Beispiel ließ Chefkoch John plötzlich Ihren Kuchen auf den Boden fallen! In der Spring MVC-Welt entspricht dies einer Ausnahme (z. B. die Anfrage konnte nicht verarbeitet werden).

Aber keine Sorge, Spring Restaurant hat einen speziellen Kellner namens ExceptionHandler, der schnell reagiert und Ihnen eine Entschuldigung oder eine neue Bestellung bringt.

@ExceptionHandler(NoCakesAvailableException.class)
public ResponseEntity handleNoCakes(NoCakesAvailableException e){
return new ResponseEntity<>("Leider sind alle Kuchen ausverkauft!", HttpStatus.NOT_FOUND);
}
Wenn wir also plötzlich keinen Kuchen mehr haben, werden sie Ihnen sagen, dass alles vorbei ist und um Vergebung bitten.

Fazit
Jetzt verstehen Sie, dass Spring MVC wie ein Restaurant mit einem klar strukturierten Servicesystem ist. Hier nimmt der Portier (DispatcherServlet) Ihre Bestellungen entgegen, findet den richtigen Koch (Controller), der die Gerichte zubereitet (Anfragen bearbeitet), und die Kellner (HandlerAdapter und ViewResolver) liefern das Ergebnis wunderschön präsentiert. Selbst wenn etwas schief geht, ist der ExceptionHandler immer bereit, ein Backup durchzuführen.

Das obige ist der detaillierte Inhalt vonFrühlings-MVC-Restaurant. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn