Das Java-Framework ist, vereinfacht gesagt, eine wiederverwendbare Designkomponente. Es legt die Anwendungsarchitektur fest und klärt die Abhängigkeiten, die Verantwortungsverteilung und den Steuerungsprozess zwischen dem gesamten Design und den kollaborativen Komponenten Zusammenarbeit zwischen einer abstrakten Gruppenklasse und ihren Instanzen, die eine Kontextbeziehung für die Wiederverwendung von Komponenten bereitstellt.
Welche sind die am häufigsten verwendeten Java-Frameworks
Struts, Hibernate und Spring sind die, die wir verwenden? Verwenden Sie in der Java-Entwicklung häufig verwendete Frameworks und bieten Sie die am besten geeigneten Lösungen für verschiedene Anwendungsszenarien. Aber wissen Sie, wie diese bekannten Frameworks ursprünglich erstellt wurden?
Wir wissen, dass traditionelle Java-Webanwendungen mit JSP+Servlet+Javabean implementiert werden. Dieses Modell implementiert die grundlegendsten Die Programmstruktur ist in mehrere Schichten unterteilt, darunter JSP, das für die Front-End-Anzeige verantwortlich ist, Servlet, das für die Prozesslogiksteuerung verantwortlich ist, und Javabean
, das für die Datenkapselung verantwortlich ist. Diese Struktur weist jedoch immer noch Probleme auf: Beispielsweise JSP Seiten müssen Symbole verwenden, um viel Java-Code einzubetten, was zu einer verwirrenden Seitenstruktur führt. Servlets und Javabeans sind für viele Sprünge und Berechnungen verantwortlich, was zu einer engen Kopplung und einer geringen Wiederverwendbarkeit des Programms führt.
Um diese Probleme zu lösen, ist das Struts-Framework eine perfekte MVC-Implementierung. Es verfügt über eine zentrale Steuerklasse (ein Servlet). Für Sprünge und Hintergrundlogikoperationen sind eine oder mehrere JSP-Seiten für die Dateneingabe und -ausgabe verantwortlich, und eine Formularklasse ist für die Datenübertragung zwischen Aktion und JSP verantwortlich. In JSP kann eine Reihe von Tags verwendet werden, die vom Struts-Framework bereitgestellt werden. Dies ist so einfach wie die Verwendung von HTML-Tags, kann jedoch eine sehr komplexe Logik vervollständigen. Von nun an ist es nicht mehr erforderlich, dass die JSP-Seite eine Zeile umgebenden Java-Codes enthält.
Die Platzierung der gesamten Operationslogik in der Aktion von Struts führt jedoch dazu, dass die Aktionsklasse weniger wiederverwendbar ist und die Logik verwirrend wird. Daher wird die gesamte Webanwendung normalerweise in drei Ebenen unterteilt Die Business-Schicht wird aufgerufen, um die Betriebslogik abzuschließen, und die Business-Schicht ruft dann die Persistenzschicht auf, um das Lesen und Schreiben der Datenbank abzuschließen.
Verwenden Sie eine JDBC-Verbindung zum Lesen und Schreiben der Datenbank. Am häufigsten öffnen wir die Datenbankverbindung, verwenden komplexe SQL-Anweisungen zum Lesen und Schreiben und schließen die Verbindung oder eingekapselt und dann nach außen übertragen. Dies ist ein sehr umständlicher Prozess.
Zu diesem Zeitpunkt erschien das Hibernate-Framework, das die Erstellung einer Reihe von Persistenzklassen erfordert. Die Attribute jeder Klasse können einfach als Eins-zu-eins-Entsprechung mit den Attributen einer Datenbanktabelle betrachtet werden. Natürlich kann auch die Korrespondenz verschiedener Tabellenzuordnungen in relationalen Datenbanken implementiert werden. Wenn wir verwandte Vorgänge benötigen, müssen wir nicht mehr auf die Datenbanktabelle achten. Wir müssen die Datenbank nicht mehr Zeile für Zeile abfragen. Wir benötigen nur die Persistenzklasse, um die Funktionen Hinzufügen, Löschen, Ändern und Abfragen auszuführen. Machen Sie unsere Softwareentwicklung wirklich objektorientiert und nicht chaotisch codeorientiert. Meiner Meinung nach reduziert die Verwendung von Hibernate den Programmieraufwand im Vergleich zu JDBC um 80 %.
Jetzt haben wir drei Schichten, aber wie lauten die Aufrufe zwischen den einzelnen Schichten? Wenn Struts in der Anzeigeschicht beispielsweise eine Business-Klasse aufrufen muss, muss eine neue Business-Klasse erstellt und diese dann verwendet werden. Die Business-Schicht benötigt zum Aufrufen der Persistenzschichtklasse auch eine neue Persistenzschichtklasse. Sich gegenseitig über diese neue Methode anzurufen ist die Verkörperung des schlechtesten Designs in der Softwareentwicklung. Um es einfach auszudrücken: Der Aufrufer ist vom Angerufenen abhängig und es entsteht eine starke Kopplung zwischen ihnen. Wenn ich eine Klasse an anderer Stelle wiederverwenden möchte, müssen auch andere Klassen einbezogen werden, von denen diese Klasse abhängt. Das Programm wird sehr unübersichtlich, jede Klasse ist voneinander abhängig und ruft sich gegenseitig auf und der Grad der Wiederverwendbarkeit ist äußerst gering. Wenn eine Klasse geändert wird, sind viele davon abhängige Klassen betroffen. Zu diesem Zweck erscheint das Spring-Framework.
Die Rolle von Spring besteht darin, die Abhängigkeiten zwischen Klassen vollständig zu entkoppeln. Wenn eine Klasse von etwas abhängt, ist sie eine Schnittstelle. Es spielt keine Rolle, wie diese Schnittstelle implementiert wird. Solange Sie eine Klasse erhalten, die diese Schnittstelle implementiert, können Sie die Implementierungsklasse problemlos über die XML-Konfigurationsdatei in die Klasse einfügen, die die Schnittstelle aufruft. Diese Abhängigkeit zwischen allen Klassen wird durch Konfigurationsdateien vollständig ersetzt. Der Kern des Spring-Frameworks ist also die sogenannte Abhängigkeitsinjektion und Kontrollinversion.
Die aktuelle Struktur ist, dass Struts für die Anzeigeschicht verantwortlich ist, Hibernate für die Persistenzschicht und Spring für die mittlere Geschäftsschicht. Diese Struktur ist derzeit die beliebteste Java-Webanwendungsarchitektur in China . Da Spring außerdem Abhängigkeitsinjektion und AOP (aspektorientierte Programmierung) verwendet, ist sein internes Modell so hervorragend, dass Spring selbst auch ein MVC-Framework implementiert hat, das Abhängigkeitsinjektion namens Spring MVC verwendet In anderen Dingen integriert Spring Hibernate, wodurch das Transaktionsmanagement von der Persistenzschicht von Hibernate auf die Geschäftsschicht gehoben wird, was die Verwendung komfortabler und leistungsfähiger macht.
Das obige ist der detaillierte Inhalt vonWozu dient das Java-Framework?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!