Das Prinzip des SSM-Frameworks besteht darin, Spring, SpringMVC und MyBatis als Framework für Webprojekte mit relativ einfachen Datenquellen zu integrieren. Der Prozess ist: Handler Mapping findet den entsprechenden Handler entsprechend der Anforderung, ruft die Geschäftslogik zur Verarbeitung auf und führt dann die Ansichtsanalyse durch.
SSM Framework Einführung
SSM (Spring+SpringMVC+MyBatis) Framework-Set besteht aus Spring, MyBatis Es ist in zwei Open-Source-Frameworks integriert (SpringMVC ist Teil von Spring). SSM wird häufig als Framework für Webprojekte mit einfachen Datenquellen verwendet.
SpringMVC
SpringMVC fängt Benutzeranfragen im Projekt ab. Sein Kern-Servlet, DispatcherServlet, übernimmt die Verantwortung eines Vermittlers und ordnet Benutzeranfragen dem Controller über HandlerMapping zu Anfrage.
SpringMVC-Framework-Laufprozess
Der Benutzer sendet die Anfrage an DispatcherServlet;
DispatcherServlet empfängt die Anfrage und fragt ein oder mehrere HandlerMapping ab, um sie zu finden und zu verarbeiten der Anfrage-Handler;
HandlerMapping findet den entsprechenden Handler entsprechend der Anfrage, generiert ein Handler-Objekt und gibt es an DispatcherServlet zurück;
Handler (Controller) ruft die Geschäftslogik (Dienst) auf Verarbeitung und kehrt nach Abschluss der Verarbeitung zu ModelAndView zurück;
HandlerAdapter gibt das Handler-Verarbeitungsergebnis ModelAndView an DispatcherServlet zurück;
DispatcherServlet fragt einen oder mehrere ViewReslover (Ansichtsauflöser) ab und übergibt ModelAndView an den angegebenen ViewReslover;
After Der ViewReslover wird analysiert und gibt die spezifische Ansicht an DispatcherServlet zurück.
DispatcherServlet rendert die Ansicht (füllt die Modelldaten in die Ansicht ein).
Der Prozess ist ungefähr wie folgt:
DispatcherServlet ist der Kern des gesamten Spring MVC. Es ist für den Empfang von HTTP-Anfragen sowie die Organisation und Koordination der verschiedenen Komponenten verantwortlich von Spring MVC und seiner Hauptarbeit Es gibt die folgenden drei Elemente:
a. Interceptieren Sie URL-Anfragen, die einem bestimmten Format entsprechen.b Initialisieren Sie den WebApplicationContext, der dem DispatcherServlet-Kontext entspricht Geschäftsschicht und Persistenzschicht; Konfigurationsdatei laden, ApplicationContext-Schnittstelle. Die Bean-Informationen in der Konfigurationsdatei werden in die HashMap geladen. Eine Bean enthält normalerweise ID, Klasse, Eigenschaft usw. Die ID der Bean entspricht dem Schlüssel in der HashMap und der Wert in der HashMap ist die Bean. Konfigurationsdatei laden
c. Initialisierung Jede Komponente von Spring MVC wird in DispatcherServlet zusammengestellt.
SpringSpring ist wie eine große Fabrik zum Zusammenstellen von Beans im gesamten Projekt. In der Konfigurationsdatei können Sie die Verwendung bestimmter Parameter zum Aufrufen des Konstruktors angeben der Entitätsklasse. Es kann im Projekt auch als Kleber bezeichnet werden. Die Kernidee von Spring ist IOC (Inversion of Control), was bedeutet, dass Programmierer nicht mehr explizit ein neues Objekt erstellen müssen, sondern das Spring-Framework alles für Sie erledigen lassen müssen. Der IOC-Container ist für die Instanziierung, Lokalisierung, Konfiguration von Objekten in der Anwendung und die Herstellung von Abhängigkeiten zwischen diesen Objekten verantwortlich. Der Zweck von Spring besteht darin, sicherzustellen, dass die Beziehung zwischen Objekten (Modulen und Modulen) nicht durch Code verknüpft ist, sondern durch Konfigurationsklassenbeschreibungen verwaltet wird (Spring baut Objekte intern dynamisch durch Reflektion basierend auf diesen Konfigurationen zusammen).
Der IOC-Container stellt die BeanFactory-Schnittstelle im Paket org.springframework.beans dar, die die Grundfunktionen des IOC-Containers bereitstellt, und die ApplicationContext-Schnittstelle im Paket org.springframework.context erweitert die BeanFactory und ermöglicht auch die Integration mit Spring AOP, Internationalisierungsverarbeitung, Ereignisverbreitung und Bereitstellung verschiedener Ebenen der Kontextimplementierung.
Um es einfach auszudrücken: BeanFactory bietet die grundlegendsten Funktionen des IOC-Containers, während ApplicationContext mehr Unterstützung für Funktionen auf Unternehmensebene bietet. ApplicationContext erbt BeanFactory vollständig, sodass die Semantik von BeanFactory auch für ApplicationContext gilt.
Frühlingslaufprozess
Rufen Sie die getBean-Methode auf, um die Bean in der Datei applicationContext.xml abzurufen. Der Parameter ist die ID der Bean. Im Allgemeinen wird eine Konvertierung in die entsprechende Geschäftsschicht (Schnittstelle) erzwungen.
Rufen Sie die Methode der Business-Schicht (Schnittstellenimplementierung) auf.
Wie wird der Inhalt der Bohne injiziert? Einfach ausgedrückt: Wenn eine Bean instanziiert wird, wird die Klasse tatsächlich instanziiert. Sie ruft die Set-Methode in der Klasse durch Reflektion auf, um die zuvor in der HashMap gespeicherten Klassenattribute in die Klasse einzufügen. Dies bringt uns zurück zum ursprünglichen Ort von Java, object.property, object.method.
Mybatis
Mybatis ist eine Kapselung von JDBC, die die zugrunde liegenden Vorgänge der Datenbank transparent macht. Alle Operationen von Mybatis drehen sich um eine sqlSessionFactory-Instanz. Mybatis wird über die Konfigurationsdatei mit der Mapper-Datei jeder Entitätsklasse verknüpft. Die Mapper-Datei wird mit der für jede Klasse erforderlichen SQL-Anweisungszuordnung zur Datenbank konfiguriert. Rufen Sie bei jeder Interaktion mit der Datenbank eine sqlSession über sqlSessionFactory ab und führen Sie dann den SQL-Befehl aus.
Mybatis stellt das Dao dynamisch über MapperProxy dar. Das heißt, wenn Sie die von Ihnen selbst geschriebene Methode im Dao ausführen, fungiert der entsprechende MapperProxy tatsächlich als Proxy.
Mybatis-Funktionsprinzip
SQL-Konfigurationsinformationen in MappedStatement-Objekte laden, einschließlich Parameterzuordnungskonfiguration, Ausführung von SQL-Anweisungen und resultierende Zuordnungskonfiguration , werden im Speicher abgelegt.
SQL-Analyse
Wenn die API-Schnittstellenschicht die Aufrufanforderung empfängt, erhält sie die ID des eingehenden SQL und des eingehenden Objekts (kann Map/JavaBean oder Basisdatentyp sein) und Mybatis findet das entsprechende Objekt Basierend auf der ID des MappedStatement und dann entsprechend dem eingehenden Parameterobjekt MappedStatement analysiert, können die letztendlich auszuführende SQL-Anweisung und die Parameter abgerufen werden.
SQL-Ausführung
Übertragen Sie das endgültige SQL und die Parameter zur Ausführung in die Datenbank und erhalten Sie das Ergebnis des Betriebs der Datenbank.
Ergebniszuordnung
Konvertieren Sie die Ergebnisse des Betriebs der Datenbank gemäß der Zuordnungskonfiguration, die in HashMap/JavaBean oder Basisdatentypen konvertiert werden kann, und geben Sie das Endergebnis zurück.
Das obige ist der detaillierte Inhalt vonWas ist das Prinzip und der Prozess des SSM-Frameworks?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!