comSysto Logo
  • Spring
  • Die richtige Antwort auf die früheren EJB Spezifikationen
  • Erleichtert das Arbeiten im Enterprise Java Bereich erheblich
  • Ermöglicht konsequenten Einsatz von TDD und somit hoch qualitative Anwendungen
  • Das mit Abstand am besten dokumentierte Open Source Framework

Spring

Ziel des Spring Frameworks ist es, die Entwicklung mit Java bzw. JEE zu vereinfachen und gute Programmierpraktiken zu fördern. Dabei steht die Entkopplung der Applikationskomponenten im Vordergrund. Spring basiert auf drei Elementen, aus denen letztendlich das berühmte Spring Triangle besteht:

1. Enterprise Service Abstractions

Spring bietet eine vereinfachte und vereinheitlichte API-Schicht über viele Java-SE-APIs, Java-EE-APIs und Open-Source-Frameworks an. Der wesentliche Grund für die zunehmende Komplexität der Entwicklung mit Java ist nämlich nicht die Sprache selbst, sondern die zahlreichen APIs, die Java anbietet.

2. Dependency Injection

In einem klassisch aufgebauten OO-System ist jedes Objekt selbst dafür zuständig, seine Abhängigkeiten, also benötigte Objekte und Ressourcen, zu erzeugen und zu verwalten. Dafür muss jedes Objekt einige Kenntnisse seiner Umgebung mitbringen, die es zur Erfüllung seiner eigentlichen Aufgabe normalerweise nicht benötigen würde. Insbesondere muss es, um die entsprechenden Objekte erzeugen zu können, deren konkrete Implementierung kennen. Dependency Injection überträgt die Verantwortung für die Erzeugung und die Verknüpfung von Objekten an ein extern konfigurierbares Framework, e.g. Spring. Dadurch wird der Code des Objektes unabhängig von seiner Umgebung und von der konkreten Umsetzung der Klassen, die es benötigt. Das vermeidet unnötige Abhängigkeiten und erleichtert besonders die Erstellung von Unit Tests. Spring bietet mit seinem Dependency Injection Container einen einheitlichen Weg, solche Objektstrukturen aufzubauen.

3. Aspect-Oriented Programming

Aspektorientierte Programmierung (AOP) versucht, bestimmte logische Aspekte einer Softwareanwendung getrennt voneinander zu entwerfen, zu entwickeln und zu testen. Die getrennt entwickelten Aspekte werden dann zur endgültigen Anwendung zusammengefügt. Aspekte beziehungsweise Concerns in diesem Sinne sind alle eigenständigen Anforderungen der Anwendung, die nicht einem einzigen Modul zugeordnet werden können sondern vielmehr von mehreren Modulen berücksichtigt werden müssen. Aspekte sind z.B. Anforderungen wie Transaktionsverwaltung, Auditfähigkeit und Loggingverhalten, die für alle Module in einer Anwendung gelten. Ein Aspekt behandelt also einen sogenannten Cross-Cutting Concern mehrerer Softwaremodule. Für die Definition und Implementierung solcher Aspekte bietet Spring AOP Framework hervorragende Unterstützung.

Spring
Tags: