Defintion „Spring“

Was ist das Spring Framework?

| Autor / Redakteur: chrissikraus / Stephan Augsten

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)

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.

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.

Kommentare werden geladen....

Kommentar zu diesem Artikel

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Aktuelle Beiträge zu diesem Thema

Alpha-Version des Pivotal Application Service (PAS) für Kubernetes

Vereinfachte Nutzung von Kubernetes

Alpha-Version des Pivotal Application Service (PAS) für Kubernetes

Pivotal hat die Alpha-Version des Pivotal Application Service (PAS) für Kubernetes vorgestellt. Neue, auf dem PAS basierende Produkte sollen zudem Entwicklern eine bessere User Experience bei der Nutzung von Kubernetes bescheren. lesen

Was ist AndroMDA?

Definition „AndroMDA Model Driven Architecture Framework“

Was ist AndroMDA?

AndroMDA ist ein Generator-Framework auf Basis der modellgetriebenen Softwareentwicklung. Es liefert die Grundvoraussetzung, um UML-Diagramme mit externen Tools in Programmcode umzuwandeln. lesen

Projekt Eirini bringt Cloud Foundry Apps in Kubernetes-Cluster

Ankündigungen des Cloud Foundry North American Summit 2019

Projekt Eirini bringt Cloud Foundry Apps in Kubernetes-Cluster

Zum North American Summit 2019 haben zahlreiche Mitglieder der Cloud Foundry Foundation ihre Neuerungen angekündigt, darunter auch Technologievorschauen für das Projekt Eirini. Mit Accenture und HCL wurden zudem erste zertifizierte Systemintegratoren vorgestellt. lesen

Was ist Dependency Injection?

Definition „DI“

Was ist Dependency Injection?

Der Begriff Dependency Injection, kurz DI, steht in direktem Zusammenhang mit der objektorientierten Programmierung. Objekte oder Klassen erhalten die Zuweisung ihrer Abhängigkeiten durch Aufruf spezifischer Methoden von einer externen Instanz. lesen

Was tut sich bei DevOps, Blockchain und Java?

Red Hat Predictions 2019

Was tut sich bei DevOps, Blockchain und Java?

Was bringt das neue Jahr für Programmierer und das Software Development? Für die Bereiche Entwickler und DevOps, Java sowie Blockchain haben sich Experten von Red Hat darüber Gedanken gemacht und einige Prognosen abgegeben. lesen

Open-Source-Engagement als Angestellter

Wie Software-Entwickler sich einbringen können

Open-Source-Engagement als Angestellter

Open Source gehört zum Software-Development-Alltag dazu, fast alle denkbaren Probleme wurden schon einmal gelöst. Dieser Artikel geht auf den Reiz am Open-Source-Engagement ein, wie sich das mit dem Angestelltenverhältnis verträgt und was uns dabei im Wege steht. lesen

Red Hat stärkt Cloud-native Development

Eclipse Che 2018 und OpenShift.io

Red Hat stärkt Cloud-native Development

Red Hat kündigt zwei Neuerungen an: SaaS-Plattform OpenShift.io wird frei zugänglich, die Container-Entwicklungsumgebung Eclipse Che fest ins Portfolio integriert. Beide Lösungen sollen den Schritt hin zur Entwicklung in der Cloud vereinfachen. lesen

Neue Entwickler-Features in Windows 10

Windows Insider Preview Redstone 5 Build 17634

Neue Entwickler-Features in Windows 10

Im Rahmen des Windows-Insider-Programms können Interessierte die für Herbst angekündigte Windows-10-Version ausprobieren. Die Redstone-5-Preview 17643 ist besonders für Entwickler interessant, die auch Office im Fokus haben, da Registerkarten für nahezu alle Anwendungen eingeführt werden. lesen

App-Bereitstellung und -Überwachung in der Cloud

Azure DevOps Projects

App-Bereitstellung und -Überwachung in der Cloud

Microsoft bietet mit dem neuen Azure-Dienst „Azure DevOps Projects“ die Möglichkeit, Anwendungen in Microsoft Azure sehr schnell bereitzustellen. Auch Continuous Integration und Continuous Delivery können mithilfe der DevOps-Pipeline realisiert werden. lesen

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 45925600 / Definitionen)