Das Spring Framework unterstützt alle Arten der Anwendungsentwicklung. Damit ist Spring eines der vielseitigsten Application Frameworks des Java-Ökosystems. Wie sich das Projekt entwickelt hat und welche Stolpersteine auf dem Weg lauerten, berichtet der Mitbegründer Jürgen Höller.
Der Name des Spring Frameworks stand seinerzeit für Erneuerung, aber auch das Projekt selbst entwickelt stets frische Triebe.
Was haben große Unternehmen wie Netflix, Allianz, Commerzbank, Daimler und öffentliche Projekte wie die Corona-Warn-App gemeinsam? Sie alle nutzen das Spring Framework, welches seit mehr als 18 Jahren existiert – fast eine Ewigkeit in der schnelllebigen IT-Welt. Um Spring und seine Bedeutung in der Entwickler-Community wirklich zu verstehen, muss man die ganze Geschichte von Spring kennen.
Wie Spring entstand
Werfen wir also einen Blick zurück auf den Oktober 2002, der Geburtsstunde von Spring. Alles begann damals, als Rod Johnson das Buch „Expert One-on-One J2EE Design and Development“ veröffentlichte. Rod kritisierte die Komplexität und schlechte Wartbarkeit von EJB 2.0 und beschloss, ein einfacheres und besser wartbares Framework für J2EE-Webanwendungen zu entwickeln.
In seinem Buch stellte er die Grundlagen und Prinzipien dieses alternativen J2EE-Frameworks vor und lieferte dazu bereits 30.000 Zeilen Quellcode. Ich erinnere mich noch genau, wie ich das Buch über die Weihnachtsferien las und sofort das große Potenzial dieses alternativen Frameworks erkannte. Viele der grundlegenden Konzepte des Spring Frameworks waren bereits enthalten – zum Beispiel ein leistungsfähiger IoC-Container (Inversion of Control) und eine ausgefeilte Implementierung des Dependency Injection Patterns.
Rods Ideen haben damals nicht nur mich beeindruckt – auch mein Entwicklerkollege Yann Caroff war ähnlich fasziniert und von den Möglichkeiten eines solchen Projekts überzeugt. Gemeinsam traten wir an Rod Johnson heran und überredeten ihn schließlich, ein Open-Source-Projekt auf Basis des Infrastruktur-Codes zu erstellen. Kurz darauf, im Februar 2003, gelang es uns, den Quellcode erstmals auf SourceForge als Open-Source-Projekt verfügbar zu machen.
Neben dem Code mussten wir uns nun auch einen Namen für das Framework einfallen lassen. Im Buch wurde es zwar noch als „Interface21 Framework“ bezeichnet, aber mit diesem Namen konnten wir letztlich natürlich keine Community begeistern. Yann schlug daraufhin „Spring“ vor – als naturbezogene Allegorie dafür, dass das neue Framework einen Neuanfang nach dem „Winter“ der traditionellen J2EE darstellt. Sowohl Rod als auch ich fanden den Namen einfach und elegant und stimmten dem Vorschlag schnell zu.
Wachstum und steigende Popularität
Im Juni 2003 erschien das erste Release in der Version 0.9 unter der Apache 2.0 Lizenz. Die offizielle Version 1.0 von Spring wurde im März 2004 veröffentlicht. Ziel war es damals, komplexe Unternehmensarchitekturen leichter test- und wartbar zu machen. Zu diesem Zweck fungiert Spring als freie, quelloffene und extrem flexible Organisationsschicht zwischen den verwendeten Komponenten.
Die Komponenten selbst müssen allerdings nicht speziell für Spring geschrieben werden. Spring basiert lose auf der JavaBeans-Konvention als Komponentenmodell. Spring konnte von Anfang an sowohl auf allen gängigen Applikationsservern oder Web-Containern als auch in einer J2SE-Umgebung (d.h. ohne J2EE-Container) eingesetzt werden.
Nach dem Start mit Spring 1.0 und dem ersten positiven Feedback von Lesern, der Entwickler-Community und Unternehmen waren wir natürlich motiviert und konnten kaum warten, das Framework weiterzuentwickeln. Im September 2004 wurde die Version 1.1 mit Bugfixes und zahlreichen neuen Features veröffentlicht. Die Version 1.2, die im Mai 2005 veröffentlicht wurde, unterstützte bereits einige Java-5-Features, wobei die Abwärtskompatibilität zu älteren Java-Versionen erhalten blieb.
Im Dezember 2005 kündigten wir die Version 2.0 an, die viele neue Funktionen brachte und im Oktober 2006 veröffentlicht wurde. Als die Version 2.0 herauskam, war das Spring Framework bereits eine Million Mal heruntergeladen worden und 2006 mit dem JAX Innovation Award sowie dem Jolt Productivity Award ausgezeichnet worden.
Bis heute hat Spring viele Entwicklungen und Neuerungen erfahren, von denen ich hier nur die wichtigsten kurz aufführen möchte:
2007 - Spring Framework 2.5 führte die annotationsbasierte Konfiguration ein
2009 - Spring Framework 3.0 führte Java-Konfigurationsklassen ein und setzte mindestens Java 5 voraus
2013 - Spring Framework 4.0 führte vollen Support für Java 8 ein
2017 - Spring Framework 5.0 führte Support für Kotlin und reaktive Architekturen ein und erforderte ein Minimum an Java 8
Besondere Herausforderungen
Natürlich verlief in den 18 Jahren der kontinuierlichen Entwicklung von Spring nicht alles ganz ohne Probleme und besondere Herausforderungen. Zum Beispiel mussten wir uns im Laufe der Zeit zunehmend mit den Veränderungen in der Komponentenmodell-Landschaft auseinandersetzen. Anfang der 2000er waren XML-basierte Komponentenbeschreibungen en vogue. Mit der Einführung von Annotationen als Java-Sprachfeature ab 2005 gab es einen Umschwung auf diese.
In den vergangenen Jahren wurde zudem verstärkt auf die direkte Abbildung von Code zur Konfiguration gesetzt. Hier mussten wir uns besonders anstrengen, aber letztendlich ist es uns gelungen, die neuen Ansätze zu unterstützen, ohne das Spring Framework grundlegend zu verändern. Eine weitere Herausforderung war die Weiterentwicklung zusammen mit Java und dem JDK – insbesondere mit den neuen Sprachkonstrukten und den neuen Bibliotheken in Java 5 und Java 8.
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel IT-Medien GmbH, Max-Josef-Metzger-Straße 21, 86157 Augsburg, einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von Newslettern und Werbung nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung.
Hinzu kommt, dass die Datenbanklandschaft über die Jahre immer heterogener geworden ist. Zum Beispiel wurden 2010 NoSQL-Datenbanken populär und die etablierten Datenbank-APIs in Java bezogen sich einzig und allein auf relationale APIs (JDBC, JPA). Mit den Spring-Data-Projekten und einem konsistenten Programmiermodell für Datenbanken jeglicher Couleur konnten wir dieses Problem schließlich lösen. Bis heute gibt es dazu keine wirkliche Alternative in der JavaEE-Welt.
Das Spring-Boot-Projekt
Im Oktober 2012 wurde eine neue Ergänzung des Spring Frameworks aufgrund einer Anfrage eines Kunden namens Mike Youngstrom eingeführt. Er erstellte eine Feature-Anfrage in Spring Jira, die eine containerlose Webanwendungsarchitektur im Spring Framework forderte. Dies führte zur Entwicklung des Spring Boot-Projekts, die Anfang 2013 begann, und schließlich zur Veröffentlichung von Spring Boot 1.0 im April 2014.
Java- und Spring-Anwendungen bestehen aus einer großen Anzahl von technischen (Drittanbieter-)Bibliotheken, um Probleme wie Sicherheit und Persistenz zu lösen. In der Vergangenheit war es vor allem die Aufgabe der Entwicklungsteams, die Bibliotheken und insbesondere die kompatiblen Versionen dieser Bibliotheken auszuwählen.
Nachdem wir zunächst auf ein BOM-Modell (Bill of Material) für einzelne Projekte umgestiegen sind, konnten wir das Problem mit Spring Boot und seinen Starter-POMs grundlegend lösen. Entwicklerteams erhalten eine kuratierte Liste von Abhängigkeiten je nach technischem Aspekt (Web, Batch, Datenbank) in kompatiblen Versionen. Somit entfällt viel manuelle Arbeit, insbesondere im Hinblick auf Sicherheitslücken.
Da Spring Boot die Erstellung von eigenständigen, produktionsreifen Anwendungen auf Basis von Spring stark vereinfacht, wird heutzutage die Mehrzahl der neuen Spring-Anwendungen konsequent auf Spring Boot aufgebaut.
Wer nutzt Spring und warum?
Ähnlich wie das Framework selbst hat sich auch Spring als Unternehmen in den letzten 18 Jahren stetig weiterentwickelt. Ursprünglich gegründet, um Spring und die damit verbundenen Projekte zu unterstützen und weiterzuentwickeln, wuchs das Unternehmen und das Entwicklerteam von Spring in den ersten Jahren stetig. Nach der Übernahme von Covalent im Jahr 2008 und weiteren Akquisitionen von G2One und Hyperic konnten wir unser Geschäft deutlich ausbauen.
Im Ergebnis konnten wir eine Suite von Softwareprodukten für alle drei Phasen des Lebenszyklus von Enterprise-Java-Anwendungen anbieten. Dies führte schon bald zur Übernahme durch VMware im Jahr 2009, wo wir zu einer eigenen Division innerhalb des Unternehmens wurden. Im Jahr 2013 gründete VMware das Joint Venture Pivotal Software und überführte Spring in diese neue Organisation – nur um im Jahr 2020 die Kräfte wieder zu bündeln, indem Pivotal und Spring in das neu geschaffene VMware Tanzu-Portfolio zurückgeführt wurden.
Das stetige Wachstum und die unternehmerische Unterstützung des Spring-Teams haben dazu beigetragen, dass sich Spring heute vor allem durch seine Zuverlässigkeit und Vielseitigkeit auszeichnet. Aus diesem Grund verwenden eine Vielzahl von Unternehmen Spring in ihren Tech-Stacks, darunter Accenture, Deleo Korea und Zalando. Netflix nutzt Spring Boot zum Beispiel als Basis seiner SOA, weil es die Skalierbarkeit und Reife der JVM bietet – aber auch Non-Profit-Organisationen oder Regierungen betreiben Softwareprojekte, die auf Spring Boot basieren. Alles in allem schätzen die Unternehmen und ihre IT-Teams, dass Spring zuverlässig sowie gut geplant ist und außerordentlich ausgeführt wird.
Was kommt als nächstes?
Was ich daran liebe, seit so vielen Jahren im Spring-Team zu sein, ist, dass es von Anfang an nie langweilig war. Auch jetzt haben wir viele neue Initiativen und Erweiterungen, um Spring noch besser zu machen. Seit Oktober 2020 ist Spring Framework 5.3 als „Long Term Support“-Zweig (und als Basis für Spring Boot 2.4 und weitere 2.x-Releases) allgemein verfügbar. Ein seltener und strategisch sehr relevanter Schritt – auch im Hinblick auf das lang erwartete Java 17 LTS Release im September 2021.
Dazu passt auch der für den 16. März geplante Support von Java 16 in Spring Framework 5.3.5. In der Java-Welt gilt JDK 16 als der letzte Meilenstein vor JDK 17 LTS – und wir erwarten, dass mittelfristig viele Spring Framework 5.3.x-Anwender strategisch auf JDK 17 umsteigen werden.
Darüber hinaus bereiten wir eine neue Spring „Framework 6“- und „Spring Boot 3“-Generation vor, von der die Entwickler-Community bereits im Jahr 2021 Preview-Releases sehen wird. Zu den Hauptthemen gehören ein Java-Baseline-Upgrade mit Fokus auf JDK 17, eine Migration von den traditionellen Java EE 7/8-APIs zu den Jakarta EE 9+-APIs und ein Support für Native Executables durch eine enge Anpassung an die nativen Konventionen von GraalVM.
Jürgen Höller
(Bild: Susanne Sickinger)
Wir wollen auch veraltete Framework-Features konsequent beschneiden und Spring Framework 6 für neue Anwendungsumgebungen im Jahr 2022 und darüber hinaus entwerfen – Seite an Seite mit der LTS-Wartung von Spring Framework 5.3.x, die das gesamte Spring-Feature-Set für bestehende Anwendungen beibehält.
Das Spring Framework hat bereits eine lange Geschichte hinter sich, aber sie ist noch lange nicht zu Ende.
* Jürgen Höller ist Mitbegründer des Open-Source-Projekts Spring Framework und begleitet das Kernprojekt bereits seit 2003 als Projektleiter und Release-Manager. Aktuell ist er hauptberuflich als Senior Staff Engineer bei VMware tätig.