Spring Framework - Übersicht
Spring ist das beliebteste Anwendungsentwicklungsframework für Enterprise Java. Millionen von Entwicklern auf der ganzen Welt verwenden Spring Framework, um leistungsstarken, leicht testbaren und wiederverwendbaren Code zu erstellen.
Spring Framework ist eine Open Source Java-Plattform. Es wurde ursprünglich von Rod Johnson geschrieben und erstmals im Juni 2003 unter der Apache 2.0-Lizenz veröffentlicht.
Der Frühling ist leicht, wenn es um Größe und Transparenz geht. Die Basisversion des Spring Frameworks ist ca. 2 MB groß.
Die Kernfunktionen des Spring Framework können bei der Entwicklung jeder Java-Anwendung verwendet werden. Es gibt jedoch Erweiterungen zum Erstellen von Webanwendungen auf der Java EE-Plattform. Das Spring Framework zielt darauf ab, die Verwendung der J2EE-Entwicklung zu vereinfachen und gute Programmierpraktiken zu fördern, indem ein POJO-basiertes Programmiermodell ermöglicht wird.
Vorteile der Verwendung des Spring Framework
Im Folgenden finden Sie eine Liste der wenigen großen Vorteile der Verwendung von Spring Framework:
Mit Spring können Entwickler Anwendungen der Enterprise-Klasse mithilfe von POJOs entwickeln. Die Verwendung von nur POJOs hat den Vorteil, dass Sie kein EJB-Containerprodukt wie einen Anwendungsserver benötigen, sondern nur einen robusten Servlet-Container wie Tomcat oder ein kommerzielles Produkt verwenden können.
Der Frühling ist modular aufgebaut. Obwohl die Anzahl der Pakete und Klassen beträchtlich ist, müssen Sie sich nur um die benötigten Pakete kümmern und den Rest ignorieren.
Spring erfindet das Rad nicht neu, sondern nutzt einige der vorhandenen Technologien wie verschiedene ORM-Frameworks, Protokollierungs-Frameworks, JEE-, Quarz- und JDK-Timer und andere Ansichtstechnologien.
Das Testen einer mit Spring geschriebenen Anwendung ist einfach, da umgebungsabhängiger Code in dieses Framework verschoben wird. Durch die Verwendung von JavaBeanstyle-POJOs wird es außerdem einfacher, die Abhängigkeitsinjektion zum Injizieren von Testdaten zu verwenden.
Das Webframework von Spring ist ein gut gestaltetes MVC-Webframework, das eine hervorragende Alternative zu Webframeworks wie Struts oder anderen überentwickelten oder weniger beliebten Webframeworks darstellt.
Spring bietet eine praktische API, um technologie-spezifische Ausnahmen (z. B. von JDBC, Hibernate oder JDO ausgelöst) in konsistente, nicht aktivierte Ausnahmen zu übersetzen.
Leichte IoC-Container sind in der Regel leicht, insbesondere im Vergleich zu EJB-Containern. Dies ist vorteilhaft für die Entwicklung und Bereitstellung von Anwendungen auf Computern mit begrenztem Speicher und begrenzten CPU-Ressourcen.
Spring bietet eine konsistente Transaktionsverwaltungsschnittstelle, die auf eine lokale Transaktion (z. B. mithilfe einer einzelnen Datenbank) und auf globale Transaktionen (z. B. mithilfe von JTA) skaliert werden kann.
Abhängigkeitsinjektion (DI)
Die Technologie, mit der sich Spring am meisten identifiziert, ist die Dependency Injection (DI)Geschmack der Inversion der Kontrolle. DasInversion of Control (IoC)ist ein allgemeines Konzept und kann auf viele verschiedene Arten ausgedrückt werden. Die Abhängigkeitsinjektion ist nur ein konkretes Beispiel für die Inversion der Kontrolle.
Beim Schreiben einer komplexen Java-Anwendung sollten Anwendungsklassen so unabhängig wie möglich von anderen Java-Klassen sein, um die Möglichkeit zu erhöhen, diese Klassen wiederzuverwenden und sie beim Komponententest unabhängig von anderen Klassen zu testen. Die Abhängigkeitsinjektion hilft dabei, diese Klassen zusammenzukleben und gleichzeitig unabhängig zu halten.
Was genau ist Abhängigkeitsinjektion? Schauen wir uns diese beiden Wörter getrennt an. Hier übersetzt sich der Abhängigkeitsteil in eine Assoziation zwischen zwei Klassen. Zum Beispiel ist Klasse A von Klasse B abhängig. Schauen wir uns nun den zweiten Teil an, die Injektion. Dies bedeutet lediglich, dass Klasse B vom IoC in Klasse A injiziert wird.
Die Abhängigkeitsinjektion kann durch Übergabe von Parametern an den Konstruktor oder durch Nachkonstruktion unter Verwendung von Setter-Methoden erfolgen. Da die Abhängigkeitsinjektion das Herzstück von Spring Framework ist, werden wir dieses Konzept in einem separaten Kapitel mit einem relevanten Beispiel erläutern.
Aspektorientierte Programmierung (AOP)
Eine der Schlüsselkomponenten von Spring ist die Aspect Oriented Programming (AOP)Rahmen. Die Funktionen, die mehrere Punkte einer Anwendung umfassen, werden aufgerufencross-cutting concernsDiese Querschnittsthemen sind konzeptionell von der Geschäftslogik der Anwendung getrennt. Es gibt verschiedene Beispiele für Aspekte wie Protokollierung, deklarative Transaktionen, Sicherheit, Caching usw.
Die Schlüsseleinheit der Modularität in OOP ist die Klasse, während in AOP die Einheit der Modularität der Aspekt ist. Mit DI können Sie Ihre Anwendungsobjekte voneinander entkoppeln, mit AOP können Sie Querschnittsthemen von den betroffenen Objekten entkoppeln.
Das AOP-Modul von Spring Framework bietet eine aspektorientierte Programmierimplementierung, mit der Sie Methodenabfangjäger und Pointcuts definieren können, um Code sauber zu entkoppeln, der Funktionen implementiert, die getrennt werden sollten. Wir werden mehr über Spring AOP-Konzepte in einem separaten Kapitel diskutieren.