Defintion „Spring“ Was ist das Spring Framework?

Autor / Redakteur: chrissikraus / Stephan Augsten

Das Spring Framework ist ein schlankes Open-Source-Framework für Java. Mittels Dependency Injection und aspektorientierter Programmierung soll es einen insgesamt leichteren und besser wartbaren Programmcode ermöglicht.

Anbieter zum Thema

Das Spring-Framework soll die Komplexität der Java-Plattform deutlich reduzieren, um die Entwicklung übersichtlicher und effizienter zu gestalten
Das Spring-Framework soll die Komplexität der Java-Plattform deutlich reduzieren, um die Entwicklung übersichtlicher und effizienter zu gestalten
(Bild: Spring.io)

Spring Framework ist ein modular aufgebautes Framework für Java bzw. Java Platform, Enterprise Edition (Java EE /J2EE). Es gilt als sehr leichtgewichtig und ist ein Open Source-Projekt. Ziel des Frameworks ist, die Komplexität der Java-Plattform deutlich zu reduzieren.

Dadurch soll sich die Java-Entwicklung übersichtlicher und effizienter gestalten – auch gegenüber Enterprise JavaBeans. Der Quellcode wird kürzer, was wiederum weniger Aufwand z. B. für spätere Änderungen bedeutet. Es wird am häufigsten genutzt, um Webanwendungen in Java zu programmieren, kann aber generell für jede Art von Anwendung genutzt werden.

Programmiermodell auf Basis von Plain Old Java Objects

Plain Old Java Objects (POJO) sind in Java einfache, leichtgewichtige Java-Klassen, die nur die Grundlagen der Java-Spezifikation umsetzen. Im Spring Framework können POJOs genutzt werden, um z. B. die Geschäftslogik abzubilden.

Interfaces und Dependency Injection

Interfaces dienen im Spring Framework dazu, eine entkoppelte Architektur zu schaffen. Mit Dependency Injection wird zudem die Konfiguration aller Abhängigkeiten aus dem eigentlichen Quellcode ferngehalten. Das Ergebnis ist ein stark reduzierter Code mit nur lose gekoppelten Systemkomponenten.

Aspektorientierte Programmierung

Aspektorientierte Programmierung (AOP) erlaubt die Strukturierung von Zusammenhängen, die komponentenübergreifend bestehen. Diese Zusammenhänge werden Aspekte genannt. So lässt sich der eigentliche Programmablauf sauberer von anderen Aspekten (z. B. Validierung, Fehlerbehandlung) trennen und das Projekt kann modularer aufgebaut werden.

Arbeiten mit Templates

Templates im Spring Framework sind Klassen, die für Programmschnittstellen (APIs) genutzt werden können. Templates bieten zudem bestimmte Komfortfunktionen wie eine einheitliche Fehlerbehandlung und automatisches Ressourcenmanagement, welche die Arbeit mit den Programmschnittstellen vereinfachen sollen.

Die Module im Überblick

Das Spring Framework ist modular aufgebaut, sodass man bei der Arbeit frei wählen kann, welche Module man gerade nutzen möchte. Das Framework enthält etwa 20 verschiedene Module, die sich in sechs Kategorien unterteilen lassen.

1. Core Container

Hier finden sich die zentralen Module des Spring Frameworks, in denen z. B. die Dependency-Injection-Funktion, die POJO-Unterstützung oder die Fähigkeit, Bibliotheken von Drittanbietern einzubinden, enthalten sind.

2. AOP und Instrumentation

Das Modul enthält wesentliche Funktionalitäten für die aspektorientierte Programmierung und bietet Integration für die Sprache AspectJ. Außerdem werden Funktionalitäten bereitgestellt, um Bytecode zur Laufzeit zu manipulieren.

3. Messaging

Für Anwendungen, die nachrichtenbasiert arbeiten, bietet dieses Modul einige Funktionen aus dem Spring Integration Project. Außerdem ermöglicht es das Mappen von Nachrichten auf Methoden.

4. Data Access/Integration

In diesem Modul geht es um Kommunikation, Interaktion und Datenzugriff zwischen der Spring Framework-Anwendung und anderen Anwendungen. Eine Abstraktionsschicht für den Datenbankzugriff erleichtert z. B. die sonst etwas umständlichen Zugriffe auf Datenbanken.

Auch eine Integration von ORM-Schnittstellen für relationale Datenbanken ist hier enthalten. Außerdem gibt es Abstraktionsschichten für Object-/XML-Mapping und die Verarbeitung von Nachrichten sowie eine Transaktionsverwaltung für Klassen und POJOs.

5. Web

Dieses Modul bietet grundlegende Technologien fürs Web, z. B. WebSockets, REST Web Services, ein Feature für mehrteilige Uploads oder ein eigenes Spring MVC Framework.

6. Test

Hier finden sich alle Komponenten, die für Unit Tests und Integration Testing benötigt werden. Das Test-Modul kann auch Mock-Objekte zu Testzwecken bereitstellen.

(ID:45925600)