Spring Framework ist eines der beliebtesten Java EE-Frameworks. In diesem Artikel werden wir folgendes lernen:
- Spring-Framework-Architektur
- Kernkomponenten von Spring
- Verschiedene Projekte unter dem Dach des Spring Frameworks.
I looked at the Google Trends chart for Spring Framework, Servlet, JSP, and JSF. It’s clear that Spring is far ahead from all other Java EE technologies.

Was ist das Spring Framework?
Spring ist eines der beliebtesten Frameworks für Java Enterprise Edition. Entwickler auf der ganzen Welt verwenden Spring zur Entwicklung zuverlässiger und qualitativ hochwertiger Anwendungen. Das Spring Framework wurde von Rod Johnson entworfen. Seitdem ist Spring zu einer alternativen Technologie in der Java-Welt für das EJB-Modell geworden. Mit dem Spring Framework können Sie verschiedene Arten von Anwendungen erstellen.
Spring-Kernkonzepte – DI, IoC, AOP
- Es ist unmöglich, das Spring Framework zu verstehen, ohne zu verstehen, was Dependency Injection und Inversion of Control bedeutet. Dependency Injection, auch als DI bezeichnet, ist eine der Arten von Inversion of Control (IoC).
- Umkehrung der Steuerung – Dies ist das Prinzip der objektorientierten Programmierung, bei dem Objekte des Programms nicht von konkreten Implementierungen anderer Objekte abhängen, sondern Kenntnisse über ihre Abstraktionen (Schnittstellen) für spätere Interaktion haben können.
- Abhängigkeitsinjektion – ist eine Komposition struktureller Entwurfsmuster, bei der für jede Funktion der Anwendung ein, bedingt unabhängiges Objekt (Dienst) vorhanden ist, das die Notwendigkeit haben kann, andere Objekte (Abhängigkeiten), die ihm über Schnittstellen bekannt sind, zu verwenden. Abhängigkeiten werden (implementiert) dem Dienst zum Zeitpunkt seiner Erstellung übergeben. Dies ist eine Situation, in der wir ein Element einer Klasse in eine andere einführen. In der Praxis wird DI durch Übergabe von Parametern an den Konstruktor oder Verwendung von Settern implementiert. Bibliotheken, die diesen Ansatz umsetzen, werden auch als IoC-Container bezeichnet.
- Aspektorientierte Programmierung – Ein Programmierparadigma, das es ermöglicht, Querschnittsfunktionalitäten in einer Anwendung zu unterscheiden. Diese Funktionen, die mehrere Anwendungsknoten überspannen, werden Querschnittsbedenken genannt, und diese Querschnittsnotizen werden von der unmittelbaren Geschäftslogik der Anwendung getrennt. In OOP ist die Schlüsseleinheit die Klasse, während in AOP das Schlüsselelement der Aspekt ist. DI hilft dabei, Anwendungsklassen in separate Module zu trennen, und AOP hilft dabei, Querschnittsbedenken von den Objekten zu trennen, die sie beeinflussen.
Spring Framework Architektur
Das Spring Framework ist in eine Reihe von separaten Modulen unterteilt, die es Ihnen ermöglichen, zu entscheiden, welche Sie in Ihrer Anwendung verwenden möchten. Das folgende Bild veranschaulicht die wichtigsten Module der Spring Framework-Architektur. Schauen wir uns die Spring-Ecosystem-Module nacheinander an.
Kernkomponenten des Spring Frameworks
Der Kerncontainer von Spring besteht aus vier Modulen: SpEL, Kontext, Kern, Beans. Die Beschreibung dieser Elemente lautet wie folgt:
- Das SpEL-Modul bietet eine leistungsstarke Ausdruckssprache zum Manipulieren von Objekten während der Ausführung.
- Der Kontext basiert auf Beans und Kern und ermöglicht den Zugriff auf jedes Objekt, das in den Einstellungen definiert ist. Das Schlüsselelement des Kontextmoduls ist die ApplicationContext-Schnittstelle.
- Das Kernmodul bietet Schlüsselteile des Frameworks, einschließlich IoC- und DI-Eigenschaften.
- Das Bean-Modul ist verantwortlich für das Erstellen und Verwalten von Spring Beans – ist eine Anwendungskontextstruktur.
Spring Framework Web
Der Web-Layer des Spring Frameworks besteht aus Web, Web-MVC, Web-Socket, Web-Portlet usw.
- Das Web-Modul bietet Funktionen wie das Herunterladen von Dateien, das Erstellen von Webanwendungen, REST-Webdiensten usw.
- Web-MVC enthält eine Implementierung von Spring MVC für Webanwendungen.
- Web-Socket bietet Unterstützung für die Kommunikation zwischen Client und Server unter Verwendung von Web-Sockets in Webanwendungen.
- Web-Portlet bietet eine MVC-Implementierung in einer Portlet-Umgebung.
Spring Framework Datenzugriff
Der Datenzugriffs-/Integrationscontainer besteht aus JDBC, ORM, OXM, JMS und dem Transaktionsmodul.
- JDBC stellt eine abstrakte Schicht über JDBC bereit und eliminiert die Notwendigkeit, dass Entwickler den monotonen Code zur Verbindung mit der Datenbank manuell registrieren müssen.
- Spring ORM bietet Integration mit beliebten ORMs wie Hibernate, JDO, die Implementierungen von JPA sind.
- Das OXM-Modul ist für die Verknüpfung von Objekt / XML – XMLBeans, JAXB, etc. verantwortlich.
- Das JMS (Java Messaging Service)-Modul ist für das Erstellen, Senden und Empfangen von Nachrichten verantwortlich.
- Transaktionen unterstützen das Transaktionsmanagement für Klassen, die bestimmte Methoden und POJOs implementieren.
Sonstige Module
Spring enthält auch eine Reihe weiterer wichtiger Module wie AOP, Aspekte, Instrumentierung, Messaging und Test.
- AOP implementiert aspektorientierte Programmierung und ermöglicht die Verwendung des gesamten Arsenal an AOP-Funktionen.
- Das Aspekte-Modul bietet Integration mit AspectJ, das auch ein leistungsfähiges AOP-Framework ist.
- Die Instrumentierung ist für die Unterstützung der Klasseninstrumentierung und des Klassenladens zuständig, die in Serveranwendungen verwendet werden.
- Das Messaging-Modul bietet STOMP-Unterstützung.
- Zu guter Letzt ermöglicht das Testmodul Tests mit TestNG oder dem JUnit-Framework.
Neue Funktionen in Spring 5
Spring 5 brachte massive Updates gegenüber Spring 4. Einige der wichtigen Funktionen von Spring 5 sind:
- Unterstützung für Java 8, Java 9, Java EE 7, Java EE 8, Servlet 4.0, Bean Validation 2.0 und JPA 2.2. Es freut mich zu sehen, dass Spring versucht, mit den neuesten Versionen der wichtigsten Technologien Schritt zu halten.
- Verbessertes Logging mit dem neuen Modul – spring-jcl.
- Dateioperationen verwenden NIO 2-Streams, dadurch verbesserte Leistung.
- Unterstützung für Reactor 3.1 Flux und Mono sowie RxJava 1.3 und 2.1 als Rückgabewerte aus Spring MVC-Controller-Methoden.
- Unterstützung für Kotlin, Project Lombok, JSON Binding API als Alternative zu Jackson und GSON.
- Spring WebFlux – Spring wird reaktiv.
- Unterstützung für JUnit 5
- Funktionale Programmierung durch Kotlin.
Sie können Spring-Projekte in unserem GitHub-Repository überprüfen.
Referenzen: Offizielle Spring-Website, Spring-Referenzdokumentation
Source:
https://www.digitalocean.com/community/tutorials/spring-framework