1. Vorwort:
Meine Bekanntschaft mit SpringMVC beruht auf der Tatsache, dass ich zum Spaß eine öffentliche WeChat-Kontoverwaltungsplattform aufbauen wollte. Da ich dies tun möchte, muss ich über die Wahl der Plattform nachdenken . Weil mein Freund nur einen virtuellen Host hat, auf dem ein Linux-System läuft, und auf dem auch einige seiner eigenen Foren laufen. Der virtuelle Windows-Host kann nicht gefunden werden und er kann schon gar nicht in ein von einem Freund gehostetes System geändert werden. Zu Beginn hatte ich geplant, Mono zu verwenden, um das Framework des vorherigen .Net MVC-Projekts auszuführen, um zu sehen, ob es verwendet werden kann, stellte jedoch fest, dass es überhaupt nicht ausgeführt werden konnte (das Projekt verwendete zu diesem Zeitpunkt Spring.NET, Mono und Spring.NET war nicht kompatibel und Sping.NET Das Forum sagte, es liege an einem Problem mit dem Reflexionsimplementierungsmechanismus von Mono. Die gute Nachricht ist, dass das neueste Spring.NET-Projekt Mono bereits unterstützt Bugs, es ist viel besser als zuvor, als es überhaupt nicht laufen konnte. Es wird immer besser, siehe SPRING-NET-MONO, Sie wissen schon ...).
Also beschloss ich, Java für die Entwicklung zu verwenden. Ich kaufte mir sogar ein Buch als Referenz, aber nachdem ich nicht viel gelesen hatte, kamen mir die ersten Fragen. Lassen Sie mich Das Inakzeptabelste ist der Ansatz von Struts2 mit einer Aktion pro Klasse (jemand in den Kommentaren hat bereits darauf hingewiesen, dass Struts2 auch mehrere Aktionsmethoden implementieren kann, vielen Dank für Ihre Korrektur).
Nach diesem Ansatz sind 4 Klassen erforderlich, um die grundlegende CURD-Operation eines Objekts zu implementieren, und eine Java-Klasse kann nur zu einer Klassendatei gehören. Auf diese Weise generiert ein Projekt eine Reihe von Klassendateien Nur durch Aktion. Darüber hinaus gibt es nur eine Aktion in der Datei und es gibt nicht viel Inhalt. Sie ist zu ausführlich und ich habe das Gefühl, dass die Entwicklungseffizienz sehr gering ist (die oben genannten Gefühle sind nur meine Gefühle, als ich damals Struts2 sah). . Bitte kritisieren und korrigieren Sie mich, wenn etwas nicht stimmt. Deshalb habe ich beschlossen, auf andere Methoden umzusteigen. Ich habe zufällig die Einführung von Spring MVC in Spring 3 gesehen, der annotationsbasierte Controller und die Aktionsdeklarationsmethode sind .Net MVC sehr ähnlich, und ich habe mich sofort für die Übernahme entschieden, sodass diese Artikelserie geboren wurde.
Konvention:
Die in dieser Serie verwendete Spring-Version ist:
spring-framework-3.2.5.RELEASE, und die Hibernate-Version ist hibernate-release-4.2. 8.Final, mit der Kombination aus Spring+Hibernate+Spring MVC.
2. Was ist Spring MVC:
Spring MVC ist ein Nachfolgeprodukt von SpringFrameWork, das ein voll funktionsfähiges MVC-Modul zum Erstellen von Web bereitstellt Anwendungen, und Struts2 ist auch ein hervorragendes MVC-Framework. Der Unterschied besteht darin, dass seit der Einführung annotierter Controller in Spring 2.5 und der kontinuierlichen Verbesserung nach Spring 3 die Entwicklungsstruktur unter Verwendung des Spring MVC-Frameworks klar ist und die Effizienz erheblich verbessert wurde.
3. Annotierter Spring MVC-Antwortprozess: Zeichnung 1 4. Einfache Beschreibung wichtiger Schnittstellen und Klassen:
DispatcherServlet: Front-End-Controller, gewohnt Anfragen entgegennehmen.
HandlerMapping-Schnittstelle: Mapping zur Bearbeitung von Anfragen.
DefaultAnnotationHandlerMapping: Implementierung der HandlerMapping-Schnittstelle, die zum Zuordnen einer URL zu einer bestimmten Controller-Klasse verwendet wird.
HandlerAdapter-Schnittstelle: Zuordnung zur Verarbeitung von Anforderungen.
AnnotationMethodHandlerAdapter: Ein Beispiel der HandlerAdapter-Schnittstelle, das zum Zuordnen einer URL zu einer Methode der entsprechenden Controller-Klasse verwendet wird.
ViewResolver-Schnittstelle: Wird zum Parsen von View verwendet.
InternalResourceViewResolver: Implementierung der ViewResolver-Schnittstelle, die zum Auflösen des logischen Ansichtsnamens von ModelAndView in eine bestimmte Ansicht verwendet wird.
Das Obige ist die erste Einführung in SpringMVC in der SpringMVC-Lernreihe (1). Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!