English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Kernkomponenten von SpringMVC
DispatcherServlet—–> Kontroller, Anfragenzugang
HanderMapping———> Kontroller, Anfragenachricht
Controller————> Kontroller, Anfrageverarbeitungsflow
ModelAndView———-> Modell, Verpackung der Ergebnisse der Geschäftsverarbeitung und der Ansicht
ViewResolver———-> Ansicht, Ansichtsdarstellungsbearbeitung
Verarbeitungsablauf
Der Browser sendet eine Anfrage an Spring, die von der Frontend-Kontrollerservlet DispatcherServlet bearbeitet wird.
Der Controller findet durch HanderMapping den entsprechenden Controller-Component, um den Anruf zu bearbeiten.
Durch die Ausführung der vereinbarten Methoden des Controller-Components wird der Anruf bearbeitet, im vereinbarten Methodenaufruf wird das Modell-Component aufgerufen, um die Geschäftslogik abzuschließen. Die vereinbarten Methoden können ein ModelAndView-Objekt zurückgeben, das die Daten der Geschäftslogik und den Namen der View enthält.
Nachdem der Controller das ModelAndView erhalten hat, ruft er das ViewResolver-Component auf, um die View (JSP) zu lokalisieren und Informationen zu übermitteln, um die Antwort-Oberfläche zu generieren.
Kommentare haben im Vergleich zur XML-Konfiguration viele Vorteile:
Es kann das Java-Reflexionsmechanismus充分利用以获取类结构信息, diese Informationen können die Konfigurationsarbeit erheblich reduzieren. Wenn JPA-Kommentare zur Konfiguration von ORM-Mappings verwendet werden, müssen wir nicht die Attributnamen und Typen der PO angeben. Wenn die Spalten der Beziehungstabelle und die Attributnamen und Typen der PO übereinstimmen, müssen Sie möglicherweise gar keine Eigenschafts-Zuordnungsinformationen schreiben - da all diese Informationen über den Java-Reflexionsmechanismus abgerufen werden können.
Kommentare und Java-Code sind in einer Datei, während XML-Konfigurationen eine独立的 Konfigurationsdatei verwenden. Die meisten Konfigurationsinformationen werden nach Abschluss der Programmentwicklung nicht geändert. Wenn Kommentare und Java-Code zusammen in einer Datei gespeichert werden, hilft dies, die innere Kompaktheit des Programms zu verbessern. Die Verwendung einer unabhängigen XML-Konfigurationsdatei führt jedoch dazu, dass der Programmierer oft zwischen den Dateien und der Konfigurationsdatei wechseln muss, was die Entwicklungseffizienz verringert.
Controller-Komponente
Der Controller-Komponente ist für die Ausführung spezifischer Geschäftslogik verantwortlich. Bei der Implementierung müssen die Controller-Schnittstelle und die vereinbarten Methoden implementiert werden.
ModelAndView-Komponente
Nachdem der Controller-Komponente ein ModelAndView-Objekt zurückgegeben wird, enthält dieses Objekt das Modell der Geschäftslogik und die View-Informationen.
Der Constructor von ModelAndView ist wie folgt:
-ModelAndView(String viewName)
-ModelAndView(String viewName, Map model)
Der viewName ist der Name der JSP-Seite, und die Daten des Models werden im request-Attribut gespeichert.
HanderMapping-Komponente
Durch das HanderMapping-Component kann der DispatcherServlet-Controller HTTP-Anfragen auf die Controller-Komponente verorten.
-SimpleUserHandlerMapping unterhält eine Beziehung zwischen HTTP-Anfragen und Controller (Mapping), um Controller anhand der Liste der Zuordnungen aufzurufen.
SimpleUserHandlerMapping wird verwendet
<bean class=""> <property name="mappings"> <props> <prop key="/login.form">loginController</prop> <props > </prop key="/hello.form">helloController</prop> </property> </bean> <bean id="helloController" class="org.test.HelloController"/>
Der helloController in der obigen SimpleUserHandlerMapping-Tag entspricht dem bean-Tag mit id=helloController unten.
RequestMappingHandlerMapping
ResquestMappingHandlerAdapter
Die @ResquestMapping-Annotation wird auf der Controller-Klasse und dem Methoden verwendet, um die zugehörigen Kunden-HTTP-Anfragen zu spezifizieren.
ViewResolver-Komponente
Alle Controller-Komponenten返回 eine ModelAndView-Instanz, die den View-Namen enthält, die Views in Spring werden durch Namen identifiziert, der ViewResolver ViewResolver interpretiert die Views durch Namen.
InternalResourceViewResolver ist ein Wrapper für Servlet und JSP, Beispiel zur Verwendung:
<bean id="jspViewResolver" class=""> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean>
Zum Beispiel: Der View-Name hello kann durch die obige Konfiguration auf/WEB-INF/hello.jsp
Controller-Annotation
Wir verwenden in der Regel die @Controller-Annotation, um Controller-Komponenten zu deklarieren, was flexibler ist und nicht wie vorher die Controller-Schnittstelle implementiert werden muss.
@Controller public class HelloController{ public String execute(){ return "Hello"; } }
Eine Voraussetzung für die Verwendung der obigen Annotation ist, dass die Annotationsscan aktiviert ist:
<context:component-scan base-package="org.test.controller">
base-Package enthält den Pfad zur Controller-Komponente.
ResquestMapping-Aufruf
ResquestMapping zeigt an, mit welchem Request dieser Klasse oder dieser Methode korrespondiert.
@Controller @ResquestMapping("/test1") public class HelloController{ @ResquestMapping("/hello.form") public String helloExecute(){ return "Hello"; } }
Wenn RequestMapping verwendet werden muss, müssen in der XML-Konfigurationsdatei von Spring zwei Bean-Komponenten definiert werden: RequestMappingHandlerMapping (vor der Klassendefinition) und RequestMappingAdapter (vor der Methodendefinition), z.B. (sping3.1Die Version muss definiert werden):
<bean class=".......RequestMappingMapping"/> <bean class=".......RequestMappingAdapter"/>
spring3.2Die Version muss nicht mehr definiert werden
<mvc:annotation-getrieben/>
Zusammenfassung
Das sind alle Inhalte dieses Artikels über die Annotationen von Spring. Ich hoffe, sie sind Ihnen hilfreich. Freunde, die daran interessiert sind, können weiterhin andere verwandte Themen auf dieser Website lesen. Jegliche Unzulänglichkeiten sind willkommen, um Kommentare zu hinterlassen. Vielen Dank für die Unterstützung der Freunde dieser Website!
Erklärung: Der Inhalt dieses Artikels wurde aus dem Internet übernommen und gehört dem Urheberrechtsinhaber. Der Inhalt wurde von Internetbenutzern freiwillig beigesteuert und hochgeladen. Diese Website besitzt keine Eigentumsrechte und hat den Inhalt nicht manuell bearbeitet. Sie übernimmt auch keine rechtlichen Verantwortlichkeiten. Wenn Sie urheberrechtlich geschützte Inhalte entdecken, sind Sie herzlich eingeladen, eine E-Mail an notice#w zu senden.3Hinweis: Wenn Sie eine Beschwerde einreichen möchten, ersetzen Sie bitte # durch @ und fügen Sie relevante Beweise bei. Sobald nachgewiesen wird, dass der Inhalt urheberrechtlich geschützt ist, wird diese Website den fraglichen Inhalt sofort löschen.