Die Kernkomponenten von SpringMVC
DispatcherServlet -> Controller, Anforderungseintrag
HandyMapping-> Controller, Anforderungsverteilung
Controller - ——> Controller, Anforderungsverarbeitungsprozess anfordern
ModelAndView ---> Modell, inkapselige Unternehmensverarbeitungsergebnisse und -ansichten inkapseln
ViewResolver ---> Ansicht, Anzeigeprozessor anzeigen
Verarbeitungsprozess
Der Browser stellt eine Anfrage an Spingen aus und gibt die Anfrage an den Front-End-Controller-DispatcherServlet zur Bearbeitung an.
Der Controller findet die entsprechende Controller -Komponente, um die Anforderung durch Handhandmapping zu verarbeiten.
Führen Sie die von der Controller -Komponente vereinbarte Methode aus, um die Anforderung zu verarbeiten, und rufen Sie die Modellkomponente auf, um die Geschäftsabwicklung in der Konvention zu vervollständigen. Die Konvention Methode kann ein ModelAndView -Objekt zurückgeben, das die Daten zur Verarbeitung von Unternehmen zusammenfasst und die Namensinformationen anzeigen.
Nachdem der Controller die ModellAndView empfangen hat, ruft er die ViewResolver -Komponente auf, findet die Ansicht (JSP) und übergibt Informationen, um das Ergebnis der Antwortschnittstelle zu generieren.
Die Kommentarkonfiguration hat viele Vorteile gegenüber der XML -Konfiguration:
Es kann den Reflexionsmechanismus von Java vollständig verwendet, um Informationen zu Klassenstruktur zu erhalten, wodurch die Konfigurationsarbeit effektiv reduziert wird. Wenn Sie JPA -Annotation verwenden, um die ORM -Mapping zu konfigurieren, müssen wir den Attributnamen, Typ und andere Informationen der PO nicht angeben. Wenn das Feld der Beziehungstabelle und der PO -Attributname und -Typ gleich sind, müssen Sie nicht einmal Informationen zum Zuordnen von Task -Attribut -Zuordnungen schreiben - da diese Informationen über den Java -Reflexionsmechanismus erhalten werden können.
Kommentare und Java -Code befinden sich in derselben Datei, während XML -Konfigurationen unabhängige Konfigurationsdateien verwenden. Die meisten Konfigurationsinformationen werden nach der Entwicklung des Programms nicht angepasst. Wenn die Konfigurationsinformationen und der Java -Code zusammengestellt werden, wird der Zusammenhalt des Programms verbessert. Unter Verwendung unabhängiger XML -Konfigurationsdateien müssen Programmierer beim Schreiben einer Funktion häufig zwischen Programmdateien und Konfigurationsdateien wechseln. Diese Inkonsistenz im Denken verringert die Entwicklungseffizienz.
Controller -Komponente
Die Controller -Komponente ist für die Durchführung einer spezifischen Geschäftsabwicklung verantwortlich. Es ist erforderlich, die Controller -Schnittstelle und vereinbarte Methoden während des Schreibens zu implementieren.
ModellAndView -Komponente
Die Controller -Konventionskomponente gibt ein Modell und ein modelAndView -Objekt zurück, das die Modelldaten für die Geschäftsergebnisse und die Ansichtsinformationen der Geschäftsverarbeitung umfasst.
Der ModelAndView -Konstruktor lautet wie folgt:
-ModelandView (StringViewName)
-ModelandView (StringViewName, MapModel)
wobei ViewName der Name der JSP -Seite ist und die Daten des Modells im Anforderungsattribut gespeichert sind
Handlungskomponente
Durch die Handlungskomponente kann der DispatcherServlet -Controller HTTP -Anforderungen an die Controller -Komponente zuordnen.
-SimpleUserHandlermaping führt eine HTTP -Anforderung und eine Controller -Zuordnung (MAP) bei, um Controller gemäß der List -Korrespondenzbeziehung aufzurufen.
SimpleUserHandlermaping
<Bean> <Eigenschaft name = "Mappings"> <props> <prop key = "/login.form"> logincontroller </prop> <preps> </prop key = "/hello.form"> hellocontroller </prop> </property> </bean> <bean id = "hellocontroller"/> "/>"/> "/>"/> "/>"/> "/>
Der Hellocontroller im obigen SimpleUserHandlermaping -Tag entspricht der Komponente, deren ID im folgenden Bean -Tag im Bean -Tag ist.
RequestMappingHandlermaping
ResquestMappingHandlerAdapter
Verwenden Sie die Annotation von @ResquestMapping in der Controller -Klasse und den Methoden, um die entsprechende Client -HTTP -Anforderung anzugeben.
ViewResolver -Komponente
Alle Controller -Komponenten geben eine modelAndView -Instanz zurück, wobei der Name der Ansicht zusammenfasst, die Ansicht im Frühjahr mit dem Namen identifiziert wird und die Ansicht Resolver ViewResolver die Ansicht über den Namen auflöst.
InternalResourceViewResolver Wraps Servlets und JSPs unter Verwendung von Beispielen:
<bean id = "jspviewresolver"> <Eigenschaft name = "prefix" value = "/web-inf/jsp/"/> <Eigenschaft name = "suffix" value = ". jsp"/> </bean>
Zum Beispiel: Der Ansichtsname Hallo kann über die obige Konfiguration auf /web-inf/hello.jsp zugeordnet werden
Controller Annotation
Wir verwenden im Allgemeinen die @Controller -Annotation, um die Controller -Komponente zu deklarieren, was sie flexibler macht und Sie die Controller -Schnittstelle nicht wie zuvor implementieren müssen.
@ControllerPublic Class HelloConTroller {public String execute () {return "hello"; }}Es gibt eine Voraussetzung für die Verwendung der oben genannten Annotation, nämlich das Scannen der Annotation:
<Kontext: component-scan base-package = "org.test.controller">
Das Basis-Package schreibt das Paket, in dem sich die Controller-Komponente befindet.
Resquestmapping Annotation
ResquestMapping gibt an, welche Anforderung diese Klasse oder Methode entspricht.
@Controller @resquestMapping ("/test1") public class hellocontroller {@resquestMapping ("/hello.form") public String helloExecute () {return "hello"; }}Wenn Sie RequestMapping verwenden müssen, müssen Sie zwei Bean -Komponenten in der Spring XML -Konfigurationsdatei RequestMapingHandlermaping (vor der Klassendefinition) und RequestMapingAdapter (vor der Methode Definition) definieren (beispielsweise vor der Methode) (erforderlich, um in der Spring -Version 3.1 definiert zu werden):
<bean/> <bean/>
Die Frühling 3.2 -Version muss nicht definiert werden
<MVC: Annotationsgetrieben/>
Zusammenfassen
Die oben genannte ist die kurze Einführung der Notizen zum Frühling in diesem Artikel, und ich hoffe, dass es für alle hilfreich sein wird. Interessierte Freunde können weiterhin auf andere verwandte Themen auf dieser Website verweisen. Wenn es Mängel gibt, hinterlassen Sie bitte eine Nachricht, um darauf hinzuweisen. Vielen Dank an Freunde für Ihre Unterstützung für diese Seite!