Einführung


... [ Seminar BS, WWW und PS ] ... [ Thema Spring Framework ] ... [ Features: Übersicht ] ...

Einführung


Motivation

Die Entwickler von Spring waren mit den von J2EE zur Verfügung gestellten Methoden zum Entwickeln von Anwendungen nicht zufrieden. J2EE bietet zum Abbilden der mittleren Schicht, der Geschäftslogik, die Enterprise Java Beans (EJB). Diese sind allerdings nur in Zusammenspiel mit einem J2EE-Server lauffähig. Zum Auffinden ihrer Ressourcen sind die EJBs zusätzlich an Java Naming and Directory Interface (JNDI) gebunden und dieses wird typischerweise nur von einem J2EE-Server zur Verfügung gestellt. Spring soll hier Abhilfe schaffen und die Geschäftslogik unabhängig vom Server verwalten können. Darüber hinaus wollten die Entwickler eine ganzheitliche Lösung anbieten, die unterschiedliche Frameworks unter einem Dach zusammenfasst und damit die teilweise komplizierte Integration dieser Frameworks in eine umfassende Architektur vereinfachen. Spring sollte dabei modular gehalten werden, so dass es auch möglich ist nur einzelne Teile des Frameworks zu benutzen. Außerdem sollte der Aufwand zum Entwickeln von Programmen minimiert werden. Ein wichtiges Ziel war es auch, dass die erzeugten Programme so wenig wie möglich von Spring abhängen. Auch untereinander sollten die Teile von Programmen möglichst wenig voneinander abhängen um Wiederverwendbarkeit und einfache Testbarkeit zu ermöglichen. Um diese Unabhängigkeiten zu erreichen und trotzdem den Überblick über die Anwendung behalten zu können, ist es notwendig die Abhängigkeiten der Programmteile untereinander zu konfigurieren. Dies sollte in einer konsistenten und einheitlichen Form geschehen. Darüberhinaus sollte Spring auf Interfaces basieren um eine möglichst leichte Erweiterbarkeit zu gewährleisten. Es ist dabei wichtig hervorzuheben, dass Spring nicht mit anderen Frameworks konkurrieren, sondern eine einheitliche und vereinfachte Möglichkeit diese anzusprechen bieten will.

Leistungen

Spring nimmt dem Entwickler die Verwaltung seiner Objekte ab. Egal um welche Art von Objekten es sich handelt, Spring übernimmt anhand einer Konfiguration deren Erstellung, Konfiguration und überwacht den Lebenszyklus. Die Objekte werden dazu in einem Container verwaltet der die oben genannten Aufgaben erfüllt. In der Spring-Terminolgie sind alle Objekte, die in einem Spring-Container verwaltet werden Beans (weicht von der Definition der JavaBeans im Kontext der EJBs ab). Da der Programmierer die Abhängigkeite seiner Objekte zu anderen nicht mehr hineinprogrammieren muss, werden einfache, unabhängige Objekte erzeugt, die leicht test- und wiederverwendbar sind. Zum Testen bietet Spring ein Package mit Superklassen an, die das Testen eines ganzen Containers mit JUnit ermöglichen und vereinfachen. Da die Konfiguration der Objekte und ihrer Abhängigkeiten in der Spring-Konfiguration vorgenommen wird sind änderungen hieran einfach und zentral möglich und erfordern in einfachen Fällen kein Verständnis von Java. Diese zentrale Verwaltung ermöglicht es auch die Anwendung an neue Umgebungen anzupassen. Wenn sich zum Beispiel die zugrunde liegende Datenbank ändert reicht es in den meisten Fällen aus die Adresse und/oder den Treiber der Datenbank in der Konfiguration zu ändern. Da das zugrundeliegende Objekt nicht weiss, dass es von einem Spring-Container verwaltet wird sind meist keine Abhängigkeiten zu Spring nötig. Nur wenn auf spezielle Funktionalitäten zurückgegriffen wird, wie zum Beispiel die Vereinfachung von Datenbankzugriffen oder bei der Programmierung von Webkomponenten, werden Abhängigkeiten von APIs erzeugt. Spring stellt eine umfangreiche Alternative zu den EJBs da. So ist es weder von einem J2EE-Server noch von JDNI abhängig. Außerdem ermöglicht es eine modularere Nutzung, so dass nur die wirklich benötigten Teile des Frameworks eingebunden werden müssen; und bietet zusätzliche Features, wie zum Beispiel den einheitlichen Zugriff auf Datenbanken, an.

Historie

Die Entwicklung am Spring Framework begann unter dem Namen Interface21-Framework, das mit dem Buch "Expert One-on-One J2EE Design and Development" von Rod Johnson veröffentlich wurde. Interface21 ist der Name der Firma bei der Rod Johnson zur Veröffentlichung seines Buches arbeitete. Dieses Framework war allerdings bei weitem nicht so umfangreich und sollte nur die in dem Buch gezeigten Ansätze verdeutlichen. Aufgrund des starken Interesse an diesem Framework wurde es im Februar 2003 in Spring Framework umbenannt und als Projekt bei Sourceforge gestartet. Im Juni 2003 folgte als erste öffentliche Version das Spring Framework 0.9. Am 24.3.2004 folgte die Version 1.0 final. Zu dieser Version gab es eine Veröffentlichung von Jürgen Höller und Rod Johnson, "Expert One-on-One J2EE Development without EJB". Seit dem 03.10.2006 gibt es die Version 2.0 final, die erhebliche änderungen in einigen Bereichen bracht. So wurde die XML-Konfiguration deutlich vereinfacht, Java 5 Support und die Unterstützung dynamische Sprachen hinzugefügt und vieles weitere. Aktuell ist zum Zeitpunkt dieser Arbeit die Version 2.0.1. Die Weiterentwicklung des Spring Framework wird von Interface21 vorangetrieben. Die aktuelle Version des Frameworks, sowie umfangreiche Dokumentation und Links zu verwandten Projekten gibt es auf www.springframework.org.
... [ Seminar BS, WWW und PS ] ... [ Thema Spring Framework ] ... [ Einführung ] ... [ Features: Übersicht ] ...