www.wikidata.de-de.nina.az
Das Spring Framework kurz Spring ist ein quelloffenes Framework fur die Java Plattform welches oft fur Web Anwendungen verwendet wird Ziel des Spring Frameworks ist es die Entwicklung mit Java Java EE zu vereinfachen und gute Programmierpraktiken zu fordern 3 Das Spring Framework bietet mit einem breiten Spektrum an Funktionalitat eine ganzheitliche Losung zur Entwicklung von Anwendungen und deren Geschaftslogiken Dabei steht die Entkopplung der Applikationskomponenten im Vordergrund SpringBasisdatenEntwickler VMware 1 Pivotal SoftwareErscheinungsjahr 16 November 2002Aktuelle Version 6 0 10 2 15 Juni 2023 Betriebssystem PlattformunabhangigProgrammiersprache Java Kotlin GroovyKategorie FrameworkLizenz Apache Lizenzspring io projects spring framework Inhaltsverzeichnis 1 Eigenschaften 2 Erweiterungen 3 Vergleich 4 Spring Boot 5 Geschichte 6 Spring Dynamic Modules for the OSGi Platform fruher Spring OSGi 7 SpringSource dm Server 8 Siehe auch 9 Literatur 10 Weblinks 11 EinzelnachweiseEigenschaften BearbeitenDas Framework basiert auf den in Rod Johnsons Buch Expert One On One J2EE Design and Development 4 vorgestellten Prinzipien Dependency Injection Den Objekten werden die benotigten Ressourcen und Objekte zugewiesen Sie mussen sie nicht selbst suchen Aspektorientierte Programmierung AOP Dadurch kann der Programmierer vor allem technische Aspekte wie Transaktionen oder Sicherheit isolieren und den eigentlichen Programmcode davon freihalten Spring bringt dabei neben Spring AOP eine gute Unterstutzung fur AspectJ und dessen Pointcut Expression Language mit Vorlagen dienen dazu die Arbeit mit einigen Programmierschnittstellen APIs zu vereinfachen indem Ressourcen automatisch aufgeraumt sowie Fehlersituationen einheitlich behandelt werden Dadurch wird ein POJO basiertes Programmiermodell moglich bei dem die POJOs zusatzlich in verschiedenen Umgebungen auf einem Server oder in einer Client Anwendung lauffahig sind Erweiterungen BearbeitenAuf Basis des Spring Frameworks existieren weitere Projekte welche innerhalb des Spring Projektes entwickelt werden Spring NET ist die Portierung des Spring Framework auf das Net Framework Spring Boot fur die einfache Entwicklung eigenstandig lauffahiger Spring Anwendungen per Konvention vor Konfiguration die ohne XML Konfiguration auskommen und alle notigen Klassenbibliotheken mitbringen Spring AMQP fur den Zugriff auf AMQP basierte Message Oriented Middleware Spring Batch fur die Abbildung von Batch Prozessen auf der Java Plattform Spring BeanDoc fur die Erstellung von Dokumentationen zu den Spring Frameworkkonfigurationen Spring Data fur den Zugriff auf verschiedene relationale und NoSQL Datenbanken Spring Dynamic Modules for OSGi Service Platforms fur die Implementierung von Spring Anwendungen auf Basis des OSGi Frameworks Spring Extensions Modules zur Anbindung von weiteren Frameworks welche nicht im Spring Framework selbst enthalten sind Spring IDE fur die Entwicklerunterstutzung in der Erstellung und Wartung von Spring Anwendungen Spring Integration fur die Implementierung von Integrationslogik mit einem Spring konformen Programmierparadigma Spring BlazeDS Integration ist die Open Source Losung zur Erstellung von Spring unterstutzten RIA Anwendungen mit Adobe Flex Spring LDAP fur den einfacheren Zugriff auf LDAP Systeme Spring MVC fur die Erstellung von Webanwendungen Spring Rich Client zur Erstellung von Rich Clients auf Basis des Spring Frameworks Spring Roo zur raschen Generierung von Spring basierten Enterpriseanwendungen Spring Security ehemals Spring Acegi zur Absicherung von Java Anwendungen und Webseiten Spring Social bietet eine Vereinfachung fur den Zugriff auf verschiedene Social Networks Spring Web Flow fur die Implementierung von Ablaufen auf einer Webseite Spring Web Services zur Erstellung von Contract First Webservices ColdSpring ColdFusion ist die Portierung des Spring Frameworks auf die ColdFusion Plattform Spring for Android ist eine Erweiterung die das Erstellen von nativen Android Apps erleichtern soll Das mittlerweile nicht mehr fortgefuhrte Open Source Projekt Spring Modules bietet daruber hinaus eine Reihe von Tools und Erweiterungen fur Spring darunter z B Integration mit Ant Flux HiveMind Lucene Apache OJB Tapestry Unterstutzung fur Caching Services db4o Rules Engines diversen Jakarta Commons Komponenten JavaSpaces jBPM Erweiterungen fur Spring MVC und Bean Validierung 5 Vergleich BearbeitenSpring konkurriert direkt mit anderen Dependency Injection Frameworks wie PicoContainer oder Google Guice bietet aber aufgrund seiner Unterstutzung fur Aspektorientierte Programmierung und Vereinfachung bestehender Programmierschnittstellen mehr als diese Im Vergleich zu Enterprise Java Beans 3 0 das auch POJO basierend ist und Dependency Injection unterstutzt gibt es folgende Unterschiede EJB 3 0 unterstutzt Dependency Injection nur fur JNDI Objekte beziehungsweise komplexe Service Objekte Spring dagegen fur alle Objekte auch fur POJOs untereinander Springs Dependency Injection Modell ist wesentlich flexibler Es bietet verschiedene Moglichkeiten um in den Dependency Injection Prozess einzugreifen und unterstutzt eine Vielzahl an unterschiedlichen Programmier und Konfigurationsmoglichkeiten EJB 3 0 unterstutzt die Interceptoren aus der aspektorientierten Programmierung nur fur Beans Mit dem Spring AOP Framework ist es dagegen schon immer moglich applikationsspezifische Interceptoren zu jedem Objekt zu integrieren Spring ermoglicht mit Spring Security Zugriffskontrolle auf Instanzebene die Zugriffskontrolle unter EJB 3 0 ist dagegen rollenbasiert unterschiedliche Zugriffsberechtigungen von Nutzern gleicher Rollen sind damit nicht realisierbar Gleichzeitig unterstutzt Spring viele der Annotationen von EJB 3 0 sodass ein ahnliches Programmiermodell moglich ist Spring Boot BearbeitenSpring Boot bietet die Moglichkeit eine Spring Applikation nach dem Konvention vor Konfiguration Prinzip zu erstellen die alle notwendigen Komponenten mitbringt und keinen externen Application Server benotigt 6 Mit Hilfe des sogenannten Spring Initializers konnen Abhangigkeiten wie z B Web Frameworks Datenbanktreiber Messaging Komponenten oder Software fur die Unterstutzung der Ausfuhrung in Cloud Umgebung ausgewahlt werden sodass die manuelle Konfiguration des Projektes entfallt Insbesondere im Gegensatz zu klassischen Spring Anwendungen bei denen mehrere XML Konfigurationsdateien bearbeitet werden mussten bietet Spring Boot eine schnelle Erstellung eines neuen Projektes Dadurch wird Spring Boot auch als Methode zur Erstellung von Microservices beworben Spring Boot ist keine Alternative zum Spring Framework sondern vereinfacht hauptsachlich die Konfiguration Durch die Einbindung sogenannter Starter in Maven oder Gradle wird eine Standardkonfiguration bereitgestellt die viele Anwendungsfalle abdeckt So konfiguriert der Starter spring boot starter web beispielsweise in der Standardeinstellung automatisch einen integrierten Tomcat Webserver Weitere Starter gibt es fur das Einbinden und Konfigurieren eines ORM wie Hibernate oder des Sicherheits Frameworks Spring Security Durch Scannen des Klassenpfads konnen weitere Konfigurationen vorgenommen werden Wenn z B der JDBC Treiber fur PostgreSQL im Klassenpfad vorhanden ist wird automatisch eine PostgreSQL Verbindung konfiguriert Geschichte BearbeitenRod Johnson prasentierte die Ideen zu Spring erstmals in seinem Buch Expert One On One J2EE Design and Development 4 2002 und stellte Quelltext als Begleitmaterial bereit Im Februar 2003 wurde der Quellcode erstmals auf SourceForge als quelloffenes Projekt bereitgestellt und erhielt zu diesem Zeitpunkt den Namen Spring Framework Im Juni 2003 erschien die erste Freigabe in der Version 0 9 unter der Apache 2 0 Lizenz Die offizielle 1 0 Freigabe von Spring wurde im Marz 2004 veroffentlicht Seit dieser Zeit fand das Spring Framework in wenigen Jahren weite Verbreitung und wird in einer Vielzahl von Anwendungen eingesetzt Im September 2004 wurde die Version 1 1 mit Fehlerbehebungen und zahlreichen neuen Funktionen veroffentlicht Die im Mai 2005 veroffentlichte Version 1 2 unterstutzte bereits einige Java 5 Funktionalitaten bei gleichzeitiger Abwartskompatibilitat zu alteren Java Versionen Im Dezember 2005 wurde von den Spring Entwicklern die Version 2 0 angekundigt welche dann eine Menge neuer Funktionen mit sich brachte und im Oktober 2006 veroffentlicht wurde Bis zur Veroffentlichung der Version 2 0 war das Spring Framework bereits eine Million Mal heruntergeladen worden und gewann im Jahr 2006 einen JAX Innovation Award und einen Jolt productivity award 7 8 Am 19 November 2007 wurde die Version 2 5 veroffentlicht Ursprunglich war die Entwicklung als Version 2 1 vorgesehen aber aufgrund der vielen neuen Funktionen wurde stattdessen die Version 2 5 Nachfolger fur die Version 2 0 x Spring 2 5 unterstutzt vollstandig die Java 6 Version sowie die Java EE in der Version 5 bei gleichzeitiger Abwartskompatibilitat zu Java 1 4 sowie Java EE 1 3 Ausserdem werden in Spring 2 5 Annotations fur die Konfiguration der Anwendungskomponenten unterstutzt Im September 2009 wurde SpringSource von VMware ubernommen 9 Version 3 0 erschien am 16 Dezember 2009 10 Neu integriert wurden darin unter anderem eine Expression Language u a fur die Konfiguration der Spring Beans und eine Unterstutzung fur REST Ausserdem wurde die Java basierte Konfiguration aus dem Spring Java Config Projekt in Spring 3 0 integriert Wesentliche Neuerungen der Version 3 1 waren die portable Cache Abstraktion und die Unterstutzung von Konfigurationsprofilen bei denen abhangig von der Umgebung unterschiedliche Spring Beans erzeugt werden Daruber hinaus werden Web Conversations eingefuhrt mit denen Zustand verwaltet werden kann der uber mehrere Web Seiten zur Verfugung stehen muss Das Spring Framework wird nach wie vor durch die Spring Kernentwickler unter anderem Jurgen Holler Rod Johnson und Rob Harrop weiterentwickelt Die Firma SpringSource Division von VMware ehemals Interface21 beschaftigt die meisten aktiven Entwickler des Projektes und bietet u a Beratung Training und Unterstutzung zu Spring Im April 2013 wurde die inzwischen von SpringSource zu Spring umbenannte VMWare Tochterfirma in ein neu gegrundetes Joint Venture Unternehmen zwischen VMware EMC Corporation und General Electric ausgegliedert Dieses Unternehmen trug den Namen Pivotal Software Inc 11 Pivotal wurde 2018 an die NYSE gebracht und 2019 wurden alle Anteile von VMware zuruckgekauft 12 Spring Dynamic Modules for the OSGi Platform fruher Spring OSGi Bearbeiten nbsp Dieser Artikel oder Abschnitt bedarf einer grundsatzlichen Uberarbeitung Naheres sollte auf der Diskussionsseite unter Spring DM gibts nicht mehr angegeben sein Bitte hilf mit ihn zu verbessern und entferne anschliessend diese Markierung Spring Dynamic Modules agiert als Brucke zwischen dem Spring Framework und OSGi Anwendungen auf Basis des Spring Frameworks konnen hierdurch mit OSGi implementiert werden Grundidee ist die Bereitstellung von Spring in Form von Bundles Dabei sollen die dynamischen Merkmale von OSGi genutzt werden Jedes Bundle besitzt seinen eigenen Application Context Spring Beans konnen als OSGi Services angeboten OSGi Services als Spring Beans konsumiert werden Services konnen dynamisch installiert und deinstalliert werden Die derzeitige Freigabe ist Spring Dynamic Modules 1 1 2 das am 3 Oktober 2008 veroffentlicht wurde SpringSource dm Server BearbeitenDie Nutzung von OSGi fur Enterprise Anwendungen fuhrt zu einigen Problemen da OSGi das Laden der Klassen anders handhabt Das kann zu Inkompatibilitaten und auch komplexeren Problemen fuhren da zum Beispiel ein O R Mapper wie Hibernate darauf angewiesen ist den Code der persistenten Objekte zu modifizieren Der SpringSource dm Server bietet Losungen fur diese Probleme an und erleichtert ausserdem die Nutzung von Spring Er basiert auf Apache Tomcat fur die Unterstutzung von Web Anwendungen und Equinox als OSGi Implementierung Der SpringSource dm Server ist ein quelloffenes Projekt nach GNU General Public License GPL Mittlerweile sind die Quellen Basis fur das Eclipse Virgo Projekt das nach der Eclipse Public License lizenziert ist Siehe auch BearbeitenListe von Dependency Injection FrameworksLiteratur BearbeitenThomas Biskup Sven Helmberger Holger Spielmann Rafael Stalitza Sascha Steiger Nils Wloka Spring Praxishandbuch Integration und Testing EntwicklerPress 2008 ISBN 978 3 939084 39 6 Thomas Biskup Rafael Stalitza Sascha Steiger Nils Wloka Spring Praxishandbuch Band 2 Dynamisierung Verteilung und Sicherheit EntwicklerPress 2009 ISBN 978 3 86802 022 9 Rod Johnson Jurgen Holler Alef Arendsen Thomas Risberg Colin Sampaleanu Professional Java Development with the Spring Framework Wiley 2005 ISBN 0 7645 7483 3 Jan Machacek Aleksa Vukotic Anirvan Chakraborty Pro Spring 2 5 APress 2005 ISBN 1 59059 921 7 Richard Oates Thomas Langer Stefan Wille Torsten Lueckow Gerald Bachlmayr Spring amp Hibernate Eine praxisbezogene Einfuhrung Hanser Verlag 2006 ISBN 978 3 446 40457 1 Mark Pollack Oliver Gierke Thomas Risberg Jon Brisbin Michael Hunger Spring Data O Reilly 2012 ISBN 978 1 4493 2395 0 Craig Walls Spring im Einsatz Carl Hanser Verlag Munchen 2008 ISBN 978 3 446 41240 8 Craig Walls Spring in Action 5th Edition Manning Verlag New York 2018 ISBN 978 1 61729 494 5 Eberhard Wolff Spring 3 Framework fur die Java Entwicklung dpunkt 2010 3 erweiterte Auflage ISBN 3 89864 572 X Alfred Zeitner Birgit Linner Martin Maier Thorsten Gockeler Spring 2 5 Eine pragmatische Einfuhrung Addison Wesley 2008 ISBN 978 3 8273 2622 5 Michael Simons Spring Boot 2 Moderne Softwareentwicklung mit Spring 5 dpunkt 2018 ISBN 978 3 86490 525 4 http springbootbuch deWeblinks BearbeitenWebprasenz des Projektes englisch www spring net Portierung des Spring Frameworks fur Microsofts Net Framework englisch Spezifikation und Dokumentation von Spring OSGi englisch Website zum dmserver englisch Artikel OSGi mit Spring DM deutsch Einzelnachweise Bearbeiten spring io github com 15 Juni 2023 Spring das Framework fur komplexe Java Applikationen In Digital Guide 3 Juni 2019 abgerufen am 25 August 2022 a b Expert One on One J2EE Design and Development Wiley Abgerufen am 6 Juli 2023 amerikanisches Englisch Spring Modules Features 1 2 Vorlage Toter Link springmodules dev java net Seite nicht mehr abrufbar festgestellt im Dezember 2018 Suche in Webarchiven nbsp Info Der Link wurde automatisch als defekt markiert Bitte prufe den Link gemass Anleitung und entferne dann diesen Hinweis An seine Stelle treten verschiedene Spring Extension Projekte Mirco Widmer Unterstutzung von 2BIT bei einem Spring Boot Projekt In nxt 16 April 2021 abgerufen am 25 August 2022 JAX Innovation Award Gewinner 2006 Memento des Originals vom 17 August 2009 im Internet Archive nbsp Info Der Archivlink wurde automatisch eingesetzt und noch nicht gepruft Bitte prufe Original und Archivlink gemass Anleitung und entferne dann diesen Hinweis 1 2 Vorlage Webachiv IABot jax award de Jolt winners 2006 Alexander Benlian Thomas Hess Peter Buxmann Software as a Service Anbieterstrategien Kundenbedurfnisse und Wertschopfungsstrukturen Springer Verlag 2010 ISBN 978 3 8349 8731 0 S 119 SpringSource Blog Spring Framework 3 0 goes GA Gartner GE Joins EMC and VMware in a Joint Venture to Challenge Software Megavendors in the Cloud VMware Completes Acquisition of Pivotal VMware News and Stories 30 Dezember 2019 abgerufen am 22 Juni 2023 englisch Normdaten Sachbegriff GND 7526076 1 lobid OGND AKS Abgerufen von https de wikipedia org w index php title Spring Framework amp oldid 238030304