SSH (Struts2+Spring+Hibernate)-Framework-Projekt, die Architektur ist hauptsächlich in drei Ebenen unterteilt:
(1) Struts2: verantwortlich für die Webschicht
(2) Spring: Verwaltung der Geschäftsschicht
(3) Ruhezustand: verantwortlich für die Datenpersistenz
Struts2-Funktionsprinzip:
1. Initialisieren Sie eine Anfrage, die auf den Servlet-Container verweist.
2. Die Anfrage wird durch den in web.xml konfigurierten Filter gefiltert und der FilterDispatcher (der Kern des Struts2-Controllers) fragt den ActionMapper, ob er eine Aktion aufrufen muss, um die Anfrage zu bearbeiten. Wenn ActionMapper entscheidet, dass eine Aktion aufgerufen werden muss, übergibt FilterDispatcher die Anforderungsverarbeitung an ActionProxy.
3. ActionProxy findet die Action-Klasse, die über die Konfigurationsdatei Struts.xml aufgerufen werden muss.
4.ActionProxy erstellt eine ActionInvocation-Instanz und ActionInvocation ruft Action über den Proxy-Modus auf. Vor dem Aufruf lädt ActionInvocation jedoch alle aktionsbezogenen Interceptoren (Interceptoren) entsprechend der Konfiguration.
5. Nachdem die Aktion ausgeführt wurde, ist ActionInvocation dafür verantwortlich, das entsprechende Rückgabeergebnis basierend auf der Konfiguration in struts.xml zu finden.
Das heißt, der Entwickler sendet eine http-Anfrage, um zu sehen, ob eine Aktion aufgerufen werden muss. Wenn ja, wird die Methode zum Implementieren der Anfrage in Struts gefunden .xml und gab dann das Ergebnis der Operation zurück.
Verwandte Empfehlungen: „Java-Entwicklungs-Tutorial“
Hibernate-Funktionsprinzip:
1. Lesen und analysieren Sie die Konfigurationsdatei
2. Mapping-Informationen lesen und analysieren, SessionFactory erstellen
3. Transaktionstransaktion erstellen
6. Transaktion einreichen 7. SessionFactory schließen Das heißt, xxx.hbm.xml wird während der von Spring verwalteten Hibernate-Initialisierung geladen Lesen Sie die Parsing-Zuordnungsinformationen und erstellen Sie eine SessionFactory. Öffnen Sie dann die Sitzung, führen Sie das Ding durch die Sitzung und senden Sie es ab. Schließen Sie abschließend die Sitzung und schließen Sie die SessionFactory. Drei Zustände von Beans im RuhezustandHibernate-Objekte sind in drei Zustände unterteilt: vorübergehender Zustand (neu oder sitzungsunabhängig bei Instanziierung), persistenter Zustand (sitzungsbezogen) und freier Zustand (einmalig). mit der Sitzung verbunden). Darunter sind die persistenten Objekte PO, und die transienten und verwalteten Objekte können als VO verwendet werden. (PO sollte nicht direkt als V-Schicht verwendet werden.) Daher sollte bei der Verwendung auf die Umwandlung der drei Zustände geachtet werden. Zum Beispiel:
In einer Reihe von Datenvorgängen kann der Speicher- oder SaveorUpdate-Vorgang vorübergehende oder freie Objekte in persistente Objekte umwandeln, während Lösch- oder Sitzungsschließungs-, Flush- und andere Vorgänge ausgeführt werden konvertiert das mit der Sitzung verknüpfte persistente Statusobjekt in einen freien Status.
Der Zustand und Lebenszyklus von Hibernate-Objekten
So funktioniert Spring:
Im SSH-Framework spielt Spring die Rolle eines Verwaltungscontainers. Wir alle wissen, dass Hibernate als Persistenzschicht verwendet wird, da es eine gute Kapselung von JDBC bietet und Programmierer bei der Interaktion mit der Datenbank nicht viele SQL-Anweisungen schreiben müssen. Als Anwendungsschicht wird Struts verwendet, das für den Aufruf der Geschäftslogik-Dienstschicht verantwortlich ist.Der Prozess des SSH-Frameworks ist also ungefähr: Jsp-Seite ----Struts------Service (Geschäftslogik-Verarbeitungsklasse) ---Hibernate (von links nach rechts)
struts Verantwortlich für die Steuerung des Dienstes (Geschäftslogik-Verarbeitungsklasse) und steuert dadurch den Lebenszyklus des Dienstes. Auf diese Weise ist die Abhängigkeit zwischen den Schichten sehr stark und gekoppelt. Zu diesem Zeitpunkt spielt die Verwendung des Spring-Frameworks die Rolle der Steuerung des Action-Objekts (in Strus) und der Service-Klasse. Die Beziehung zwischen den beiden ist locker (Kontrollumkehr und Abhängigkeitsinjektion). wird hier verwendet. Kontrollumkehr: Der Container steuert die (Abhängigkeits-)Beziehung zwischen Programmen, anstelle der herkömmlichen Implementierung, die direkt durch den Programmcode gesteuert wird. Abhängigkeitsinjektion: Die Abhängigkeiten zwischen Komponenten werden vom Container während der Laufzeit bestimmt, und der Container injiziert dynamisch bestimmte Abhängigkeiten in die Komponenten. Der zweite Vorteil der Verwendung von Spring (AOP-Anwendung): Transaktionsverarbeitung:Im vorherigen JDBCTemplate wurde die Transaktion erfolgreich übermittelt und die Ausnahmebehandlung wurde über Try/Catch abgeschlossen. Der Spring-Container integriert TransactionTemplate, das alle Transaktionsverarbeitungsfunktionen kapselt, einschließlich des Transaktions-Rollbacks bei Auftreten von Ausnahmen, der Datenübermittlung bei erfolgreichen Vorgängen und anderer komplexer Geschäftsfunktionen. Dies alles wird vom Spring-Container verwaltet, der die Codemenge für Programmierer erheblich reduziert und eine gute Verwaltung und Kontrolle über Transaktionen ermöglicht. Hibernate verfügt auch über eine Transaktionsverwaltung. Die Transaktionsverwaltung im Ruhezustand erfolgt durch das Erstellen und Verwalten von Sitzungen über SessionFactory. Spring hat auch die SessionFactory-Konfiguration integriert, und es ist nicht erforderlich, SessionaFactory über hibernate.cfg.xml festzulegen.
Auf diese Weise können Sie die leistungsstarken Transaktionsverwaltungsfunktionen von Sping optimal nutzen.
Es vermeidet die Notwendigkeit, eine Sitzungsinstanz zu erhalten, um die Transaktion zu starten/zu senden/zurückzusetzen, und den umständlichen Try/Catch-Vorgang bei jeder Datenverarbeitung.
Dies sind gute Anwendungen des AOP-Mechanismus (aspektorientierte Programmierung) im Frühjahr. Einerseits wird dadurch die Entwicklung der Geschäftslogik übersichtlicher und die professionelle Arbeitsteilung erleichtert.
Andererseits reduziert die Anwendung der Spirng AOP-Isolation die Kopplung des Programms, sodass wir verschiedene Aspekte in verschiedenen Anwendungen kombinieren können, was die Wiederverwendung von Code erheblich verbessert.
Das obige ist der detaillierte Inhalt vonWas ist das Prinzip und der Prozess des SSH-Frameworks?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!