Download: "Erratum: Die Zukunft des Frühlings von

Werbung
Java Magazin 1.2014 automated
Elasticsearch
on-demand
OSGi
Neo4j-Tutorial
Application Client Container
magazin
Java • Architekturen • Web • Agile
• Web service pushing your
CI process forward
• Save up to 90% of your
testing time & budget
• No modification required
• CI server Plug-Ins
www.javamagazin.de
Elasticsearch
Java EE und der ACC
Suche mit anderen Augen 69
Der unbekannte Dritte 45
ngs
!
ier im Heft
h
s
fo
In
e
All
22
O
I
g
Sprin
li
Die Zukunft des Früh
FX Traits
Find bugs before your users do! Try now!
1.2014
Java ME 8
30 days free trial!
Visit our website or call us
www.testobject.com
+49 (0) 3302/559375
Österreich € 10,80 Schweiz sFr 19,50 Luxemburg € 11,15
Spring IO
easy
Deutschland € 9,80
Spring mit
neuem Look und
neuem Feel? 32
IDE-Integration
mit der Spring
Tool Suite 38
Spring Boot:
New Kid on
the Stack 42
Mehr Themen: Java ME 8 und Embedded: Back to the Roots 106 | FX Traits: JavaFX und
Scala Traits kombiniert 90 | Sencha trifft REST: Mobile HTML5-Apps auf Knopfdruck 101
© iStockphoto.com/_Rike_
Mobile App Testing
in the Cloud
Java Mag
Neo4j-Tutorial: Graphdatenbanken zum Anfassen 82
Titelthema Spring IO
Was es mit der neuen Plattform auf sich hat
Zukunft
Die
des
Frühlings
Auf der diesjährigen SpringOne-Konferenz in Santa Clara kündigte
das Spring-Team die Plattform Spring IO an, einen komplett neuen
Ansatz, die Spring-Technologien zu nutzen. Wir werfen einen Blick
auf die Plattform und erläutern, was genau dahintersteckt.
32
javamagazin 1 | 2014
© iStockphoto.com/_Rike_
von Oliver Gierke
www.JAXenter.de
Spring IO Titelthema
Spring ist wohl das populärste und am weitesten verbreitete Framework zur Entwicklung von Unternehmensanwendungen in Java. Eine Vielzahl völlig verschiedener
Anwendungstypen wird auf ihm implementiert: Einfache Webapplikationen, anspruchsvolle Serverapplikationen, aber auch Batchprozesse und Software im Bereich
der Applikationsintegration gehören zum klassischen
Einsatzfeld des Frameworks. Unbestreitbar ist auch der
hohe Einfluss in Spezifikationen für Dependency Injection wie in Java EE 5. Auch neuere Spezifikationen wie
JTA 2.1 (JSR 907 – @Transactional) und JSR 352 für
Batchapplikationen in Java tragen eindeutig die Handschrift der entsprechenden APIs und Module des Spring
Frameworks.
Die technischen Anforderungen an Softwaresysteme
haben sich in den letzten Jahren allerdings auch stark
verändert. Während es vor fünf Jahren vielleicht noch
genügte, mit einer relationalen Datenbank zu sprechen und in ihr enthaltene Daten in einer Webansicht
anzuzeigen, trifft man heutzutage nicht selten auf eine
Kombination aus relationalen und nicht relationalen
Datenbanken, der Anforderung zu OAuth-Security, der
Integration mit sozialen Netzwerken oder dem Bearbeiten von extrem großen Datenbeständen, zeitkritischen
Daten usw. Auch für diese Herausforderungen bietet
Spring Unterstützung an.
Schon immer bestand das Spring-Ökosystem aus verschiedenen Modulen, die den Aspekten der unterschiedlichen Applikationstypen Rechnung trugen. Der Vorteil
hierbei besteht darin, dass eine Applikation exakt die
Teile von Spring benutzt, die sie benötigt. Umgekehrt
sorgt das konsistente Programmiermodel der einzelnen
Module dafür, dass die Einarbeitungszeit in einen bisher
unbekannten Teil des Ökosystems überschaubar bleibt
– sich Entwickler schnell zu Hause fühlen, auch wenn
man sich in technisch neues Terrain begibt.
Ein gutes Beispiel hierfür ist die Repository-Abstraktion der Spring Data Module: hat man sich zum Beispiel
einmal im Bereich JPA daran gewöhnt, in dieser Herangehensweise Datenzugriff zu implementieren, ist der
Umstieg auf einen MongoDB-basierten Datenzugriff mit
gleicher Technologie sehr einfach. Es wird Entwicklern
also sehr leicht gemacht, einmal erworbenes Wissen in
andere Kontexte zu übertragen.
Herausforderungen
Der modulare Aufbau des Frameworks erlaubt es den
Einzelprojekten, sich in unterschiedlicher Geschwindigkeit zu bewegen, andere Releasezyklen zu wählen.
Während das Spring Framework seit mehreren Jahren kontinuierlich auf einem Ein-Jahres-Rhythmus für
Majorversionen ist, bewegen sich z. B. die Spring Data
Module in einem etwa sechs-monatigen Zyklus. Grund
dafür sind unter anderem unterschiedliche Releasezyklen der Dritttechnologien, die es zu integrieren gilt: Der
Lebenszyklus einer Java-EE- oder JDK-Spezifikation,
die Spring 4 sehr stark beeinflusst, unterscheidet sich
von dem eines MongoDB-Treibers, der wiederum eine
www.JAXenter.de
wichtige Abhängigkeit des Spring Data MongoDB Moduls ist.
Die Konsequenz daraus ist die Notwendigkeit, Kompatibilität zwischen den entsprechenden Modulen des
Spring Frameworks sicherzustellen und es den Entwicklern möglichst einfach zu machen, die Module in kompatiblen Versionen zu konsumieren.
Die Plattform
Um mehr Überblick über das Ökosystem zu geben, definiert die Spring-IO-Plattform den Teilbereich Founda­
tion. Dieser Bereich illustriert die verfügbaren Spring
Module und wie diese zueinander in Beziehung stehen
und definiert so die Basistechnologien des Stacks. Im
Bereich Core findet man wie erwartet das Kernframework, sowie die bekannten Technologien Spring Security und Groovy. Mit Spring 4 gibt es in diesen Tagen
das erste Mal seit vier Jahren eine neue Majorversion
des Kernframeworks. Enthalten sind die Unterstützung
für Java 8, die wichtigsten Java-EE-7-APIs, WebSockets,
Groovy-basierte Bean-Definitionen und ein überarbeiteter Dependency-Injection-Mechanismus mit Unterstützung für Applikationskomponenten mit Generics.
Neu in diesem Bereich ist sicher Project Reactor, ein
Basisframework für Reactive Programming. Reactor ist
eine Basistechnologie, die es erlaubt, hochperformante,
eventbasierte Anwendungen zu implementieren.
Im Bereich der Persistenz erweitern vor allem die
Spring-Data-Projekte den Funktionsumfang des Kernframeworks. Im relationalen Bereich bieten die Module für JPA und JDBC die umfassendste Unterstützung
für Entwickler, möglichst effizient Datenzugriff zu
implementieren. Im nicht relationalen Bereich gibt es
hier Unterstützung für die Platzhirsche MongoDB,
Neo4j und Gemfire. Besonders hier ist allerdings auch
die Spring-Community sehr aktiv und bereichert das
Portfolio durch Module für Couchbase, Solr und Elasticsearch.
Während die unteren zwei Layer unserer Architektur sehr universell einsetzbare Technologien beschreiben, ist der obere Teil der Foundation schon sehr an
den verschiedenen Applikationstypen orientiert, die sich
mit Spring implementieren lassen. Hierzu gehört zum
Beispiel Spring Integration, eine Implementierung der
Enterprise Application Integration Patterns des gleichnamigen Buchs von Gregor Hohpe. Spring Batch war
lange Zeit das einzig verfügbare Framework für die
Implementierung von Batchszenarien und wird in der
kommenden Version 3.0 aufgrund seiner Reife wohl die
wichtigste Implementierung des JSR-352-Standards.
Im Bereich der Big-Data-Applikationen hat sich
in der Java-Welt vor allem Spring Hadoop einen Namen gemacht, da es Apache Hadoop konsistent in eine
Spring-Applikation einfügt und Entwicklern gewohnte Programmiermodelle bereitstellt. Im Bereich Web
sind die altbekannten Module Spring MVC und Spring
WebFlow zu finden, sowie Unterstützung für LegacyTechnologien wie SOAP (durch Spring Web Services)
javamagazin 1 | 2014
33
Titelthema Spring IO
tur vorgibt, und auch zur Laufzeit den Applikationen
Funktionalität beisteuert. Spring XD ist noch ein sehr
junges Projekt, das sich dem Bereich Big Data Processing annimmt und – ähnlich wie Grails – die für die Problemlösung relevanten Spring-Technologien bündelt
und zusätzlichen Mehrwert in Bezug auf Monitoring
und Operations bietet. Eine Vorstellung von Spring XD
findet sich unter [1].
Ein ebenfalls neues Projekt im Portfolio ist Spring
Boot, entstanden aus verschiedenen Ideen der letztjährigen SpringOne 2012. Eberhard Wolff und Martin Lippert gehen im Folgenden detailliert auf Spring Boot ein,
daher hier nur ein paar erste Informationen.
Spring Boot
Spring Boot ist ein sehr zentraler Bestandteil der
Spring-IO-Plattform. Das Projekt geht drei wesentliche Aspekte der Anwendungsentwicklung bei SpringApplikationen an:
aber auch unentdecktere Aspekte wie Hypermedia im
Bereich REST Web Services (durch Spring HATEOAS).
1.Vereinfachtes Dependency Management
2.Automatische Defaults in der Anwendungskonfiguration
3.Vereinfachtes Deployment und Betrieb von JavaApplikationen
IO Execution
Vereinfachtes Dependency Management
Auf den Bereich der Foundation setzt nun der ExecutionBereich auf. Wie der Name schon vermuten lässt, finden
sich hier Laufzeitumgebungen, die zum Teil nicht mehr
einfach Bibliotheken sind, sondern Ausführungs-Container für Applikationen einer bestimmten Klasse. Das
Spring-Team spricht hier von Domain-specific Runtimes
(DSRs), wobei Domäne hier noch den technischen Bereich beschreibt, in den sich die Applikation einordnet.
Die klassischste und wohl auch bekannteste Ausführung solch einer Laufzeitumgebung ist Grails. Es hilft
Entwicklern, sehr schnell und produktiv Groovy-basierte Webapplikationen zu bauen, in dem es Projektstruk-
Wie oben bereits angesprochen, ist das Verwalten
von Abhängigkeiten eine kritische Aufgabe in Softwareprojekten. Im Spring-Umfeld ist es die Aufgabe
der Entwickler und Architekten zu definieren, welche
Abhängigkeiten ein System benötigt und in welcher
Version diese benutzt werden sollen. In alternativen Ansätzen – zum Beispiel einem Java EE Application Server – scheint diese Herausforderung nicht zu bestehen,
da dieser bereits vordefinierte Implementierungen der
jeweiligen Spezifikationen mit ausliefert. Was auf den
ersten Blick eine einfache Lösung zu sein scheint, hat
allerdings auch gravierende Nachteile.
Erstens wählt der Serverhersteller die Bibliotheken
aus, nicht das Team selbst. Die Auswahl ist also nicht
unbedingt von den Anforderungen im Projekt getrieben
(„Kann der JPA-Provider überhaupt mit einem Datenbankschema umgehen, das wir nutzen müssen?“), sondern von in Bezug auf das Projekt recht willkürlichen
Anforderungen. Zweitens stellt sich die Herausforderung
der manuellen Abhängigkeitsverwaltung in Projekten sowieso, sobald dieses nicht standardisierte Bibliotheken
einsetzt und sie als direkte Abhängigkeiten verwendet.
Drittens ist man in diesem Modell mit seinen Applikationen sehr stark an den Lebenszyklus der DeploymentPlattform gebunden. Stolpert man z. B. über einen Bug in
einer im Server betriebenen Bibliothek, ist es unter Umständen nicht ohne Weiteres möglich, eine neuere Version dieser Bibliothek zu verwenden, die den Bugfix evtl.
schon enthält. Der lange Lebenszyklus der Plattform hat
weiterhin den Nachteil, dass eben Upgrades derselben
nur nach sehr langen Zeiträumen möglich sind bzw.
Abb. 1: Spring IO Platform Stack
Interview mit Jürgen Höller
Auf der W-JAX 2013 traf Claudia Fröhling auf Jürgen Höller,
um über die neue Plattform, das anstehende Spring-Framework-Release und die Chancen von Java 8 zu sprechen.
http://bit.ly/1dkmjG1
34
javamagazin 1 | 2014
www.JAXenter.de
durchgeführt werden. Für den im Frühjahr
verabschiedeten Java-EE-7-Standard gibt es
von den großen Herstellern leider auch über
ein halbes Jahr später noch immer keine offiziell unterstützte Serverversion.
Im Umfeld von Spring-Applikationen ist
es also üblich, den exakt anderen Weg zu gehen: die toolgestützte, manuelle Verwaltung
von Abhängigkeiten und deren Versionen
sowie das Deployment eben dieser als JARs
im Applikationsartefakt. Auch dies ist natürlich nicht ohne Herausforderungen: Besonders das Zusammensuchen von kompatiblen
Versionen hat so manchem Entwickler und
Architekten das ein oder andere graue Haar
beschert.
Spring Boot geht dieses Thema an, in dem
es einen wohldefinierten Satz an Abhängigkeiten und deren Versionen definiert und
diese Definition über bekannte DependencyManagement-Werkzeuge wie Maven oder
Gradle anbietet. Im Falle von Maven geschieht dies über ein Parent-POM, das die
Versionsnummern der unterstützten Abhängigkeiten im <properties />- und <dependencyManagement />-Block definiert.
Um nun Abhängigkeiten zu konsumieren,
kann man diese jeweils selbst definieren, allerdings ohne die Versionsnummern explizit
anzugeben. Da in vielen Fällen aber gleich
ganze Sätze an Abhängigkeiten benötigt
werden – zum Beispiel Spring Data JPA mit
Hibernate – bietet Boot so genannte StarterPOMs an, die für einen bestimmten Technologiebereich Abhängigkeitssätze definieren.
Das eben bereits angesprochene StarterPOM spring-boot-starter-data-jpa deklariert
Abhängigkeiten zu Spring Data JPA, Hibernate, dem Spring-ORM-Modul und dem
Starter-POM für JDBC. Dies wiederum beinhaltet das Spring-JDBC-Modul und eine Abhängigkeit zum Tomcat Connection Pool. So
bekommt man durch die Deklaration einer
einzigen Abhängigkeit einen kompletten Satz
an Dependencies in kompatiblen Versionen.
Dadurch, dass die Versionen der individuellen Abhängigkeiten als Maven- bzw. Gradle-Properties definiert sind, ist es allerdings
auch möglich, Versionen für bestimmte
Dependencies manuell zu definieren und so
im Falle eines wichtigen Bugfix-Releases die
funktionierende Version zu beziehen. Versionsupgrades von Abhängigkeiten liegen
also immer noch im Verantwortungsbereich
des Entwicklerteams, können z. B. auf eine
Spring-IO-Version standardisiert werden,
um so das benötigte Maß an Konsistenz zwischen Applikationen herzustellen.
www.JAXenter.de
Defaults in der Anwendungskonfiguration
Kommen wir noch einmal zurück zum Beispiel Spring Data JPA. Durch die Deklaration des entsprechenden Starter-POMs
können wie oben beschrieben auf einen
Schlag die benötigten Abhängigkeiten (das
JPA API Jar, Hibernate als Persistenzprovider und Spring Data JPA als Hilfsbibliothek)
konsumiert werden. Nun ist es jedoch immer
noch nötig, ein gewisses Konfigurationssetup
zu definieren, um Spring die entsprechenden
Komponenten instanziieren zu lassen. In unserem konkreten Fall wäre das Folgendes:
•Eine DataSource mit den entsprechenden
Verbindungsdaten zum Datenbankserver
•Eine LocalContainerEntityManagerFactoryBean, um JPA zu initialisieren
•Einen JpaTransactionManager für das
Transaktionsmanagement in den Spring
Data JPA Repositories
•Ein @EnableJpaRepositories, um das
Auffinden von Spring Data Repository
Interfaces und die Erzeugung der entsprechenden Spring Beans zu aktivieren
Unabhängig davon, wie die RepositoryInterfaces eigentlich aussehen, welche Daten persistiert werden, ist also ein gewisses
Grundrauschen an Konfiguration notwendig, die sich die meisten Entwickler aus anderen Projekten oder Beispielen, die sie im
Netz finden, zusammensuchen müssen.
Spring Boot stellt nun mit seinem Autokonfigurationsmodul einen Mechanismus
zur Verfügung, der dieses Vorgehen sehr
stark vereinfacht. Durch @EnableAutoConfiguration an einer Konfigurationsklasse inspiziert Boot den Classpath der Applikation
und erzeugt eine wohldefinierte Menge von
Default-Konfiguration, es sei denn, es sind
für die zu registrierenden Komponenten
bereits manuelle Bean-Definitionen vorhanden. In unserem Beispiel genügt also diese
Konfigurationsklasse
@Configuration
@EnableAutoConfiguration
@ComponentScan
class Application { ... }
um die Spring-Data-JPA-Konfiguration wie
oben beschrieben zu defaulten. Hierbei wird
sehr stark damit gearbeitet, feststellen zu
können, welche Bibliotheken im Applikations-Classpath vorhanden sind. Das Vorhandensein von H2 oder HSQLDB sorgt zum
Beispiel für die automatische Registrierung
Anzeige
Titelthema Spring IO
Das erste offizielle Release
der Spring-IO-Plattform ist für das
erste Quartal 2014 geplant.
einer In-Memory-DataSource über die Mechanismen,
die Spring über den EmbeddedDatabaseBuilder bereitstellt. Dadurch, dass das Hibernate EntityManager JAR
im Classpath liegt, wird eine LocalContainerEntityManagerFactory deklariert und ein JpaTransactionManager. Das Scannen nach Spring Data JPA Repositories
wird vom Vorhandensein des Spring Data JPA JARs
ausgelöst usw.
Dieser Mechanismus ist eigentlich eine Umsetzung des
bekannten Convention-Over-Configuration-Mechanismus. Das heißt, man schreibt nur die Konfiguration, die
explizit von den Defaults abweicht. Um dies zu tun, gibt
es zwei Möglichkeiten: Konfigurationsdetails, die sich
sehr wahrscheinlich von Applikation zu Applikation unterscheiden werden, kann man über ein Properties-File
namens application.properties im Classpath bzw. dem
Ausführungsverzeichnis anpassen oder über JVM-Parameter definieren. Klassiker hierbei sind Informationen
wie der JDBC-URL der Datenbank, Benutzername und
Passwort usw.
Um jedoch auf weitergehende, explizite Konfiguration
eingehen zu können, registriert Boot die Default-BeanDefinitionen nur, wenn nicht bereits eine Bean-Defini-
Listing 1
@Configuration
@EnableAutoConfiguration
@ComponentScan
class Application {
@Bean
public DataSource dataSource() {
// Explizite Deklaration hier
}
}
Listing 2
@Configuration
@EnableAutoConfiguration
@ComponentScan
class Application {
public static void main(String... args) {
SpringApplication.run(Application.class, args);
}
}
36
javamagazin 1 | 2014
tion des entsprechenden Typs vorhanden ist. Um zum
Beispiel die DataSource komplett anders zu konfigurieren als im Default, genügt es, eine entsprechende BeanDefinition zu deklarieren (Listing 1).
Für diese Datei konfiguriert Boot die gleichen Defaults
wie oben beschrieben, nutzt aber die hier explizit deklarierte DataSource. Auf diese Weise zieht sich Boot für
manuell konfigurierte Bean-Definitionen diskret zurück
und nutzt diese transparent für seine weitere Arbeit.
Vereinfachter Betrieb von Java-Applikationen
Traditionell werden Java-Webanwendungen in einem
Server betrieben. Dies kann sowohl ein einfacher Servlet
Container wie Tomcat sein, aber auch ein größerer Application Server, der neben einer Servlet-Umgebung noch
weitere Dienste zur Verfügung stellt. Theoretisch sieht
das Nutzungsmodell dieser Server vor, mehrere Applikationen in eine Serverinstanz zu deployen, um Ressourcen
wie Connection-Pools zentral verwalten zu können.
In vielen Fällen wird heutzutage jedoch jeweils eine einzelne Applikation in eine einzelne Serverinstanz deployt.
Dies ist vor allem der Fall, da das gemeinsame Deployment
von Applikationen diese indirekt über die Infrastruktur
aneinander koppelt. Muss der Server zum Beispiel für ein
Upgrade heruntergefahren werden, betrifft das immer alle
Applikationen, die in ihm deployt sind. Sorgt eine Applikation im Server für ein Speicherleck, betrifft das unter
Umständen auch die anderen Applikationen.
Ein alternativer Ansatz, der mehr und mehr Verbreitung findet, ist es, die benötigten Serverkomponenten mit
der Applikation zu bündeln und auch mit ihr zu starten.
Im Zusammenhang mit den oben beschriebenen Mechanismen zum Dependency Management und den entsprechenden Defaults bezüglich der Konfiguration bietet
Spring Boot einen zweistufigen Mechanismus, um dieses
Embedded-Server-Modell zu betreiben (Listing 2).
Man kann eine Spring-Boot-basierte Applikation
starten, indem man sich über den bereits beschriebenen
Mechanismus zum Beispiel Tomcat oder Jetty in den
Classpath holt und eine Java-Klasse mit einer main(…
)-Methode deklariert, die per statischem Aufruf SpringApplication die Konfigurationsklasse (hier ein und
dieselbe Klasse) übergibt. Boot findet die Serverkomponenten sowie Spring MVC im Classpath, leitet daraus die
Notwendigkeit des Serverstarts ab und sorgt selbstständig für das Hochfahren des Servers. Oft anzupassende
Konfigurationswerte – zum Beispiel der Serverport oder
der Kontextpfad der Applikation – können wie oben bereits beschrieben über die application.properties-Datei
oder JVM-Parameter überschrieben werden.
Um die Applikation einfach starten zu können, ist
es notwendig, ein JAR zu erzeugen, das alle Abhängigkeiten enthält. Hierzu kann ein Maven- bzw. GradlePlug-in verwendet werden. Bevorzugt man weiterhin
das Deployment in einen Application Server, so genügt
es, das Projekt als WAR-Projekt zu definieren. Das
Spring-Boot-Maven- bzw. -Gradle-Plug-in sorgt dann
beim Build automatisch dafür, dass neben der norma-
www.JAXenter.de
Spring IO Titelthema
len WAR-Datei auch ein startbares WAR erzeugt wird.
Zum Start der Applikation ruft man nach erfolgreichem
Build einfach java -jar target/*.(jar|war). Zur Entwicklungszeit in der IDE genügt natürlich das Starten der
Klasse mit der oben beschriebenen main(…)-Methode.
Monitoring und Operations
Ein oft genutztes Feature traditioneller Server ist die
Möglichkeit, den Zustand der Applikation über Metriken beurteilen zu können bzw. sogar bestimmte Werte
zur Rekonfiguration zur Laufzeit z. B. per JMX zu exportieren. Spring Boot stellt so genannte Actuator bereit, die
mit der Applikation deployt werden können. Diese stellen
dann ähnliche Funktionalität zur Verfügung, in dem sie
Out of the Box ein paar HTTP-Ressourcen veröffentlichen, die vielseitige Informationen per JSON exponieren:
•/env – die Properties der Ablaufumgebung (JVMArgumente, System-Properties, die Systemumgebung)
•/health – ein einfaches OK, wenn die Anwendung
gestartet werden konnte
•/info – spezielle Properties unter dem Schlüssel endpoints.info.$key; hier können z. B. Informationen wie
die Applikationsversion einfach hinterlegt werden
•/metrics – Basismetriken der Applikation (Speicherverbrauch, Counter der HTTP-Statuscodes usw.)
•/trace – Informationen über die letzten 100 Anfragen
an die Applikationen (HTTP-Request-URL, Header,
Response usw.)
•/dump – ein Threaddump der Applikation
•/beans – eine Liste aller Spring Beans der Applikation
über die Jahre für eine Vielzahl verschiedenster Tutorials, die im Netz zu finden sind. Nachteil dieser Fülle
ist, dass Entwickler, die heute nach Lösungen für ein
bestimmtes Problem suchen, oft sehr alte – und damit
auch oft veraltete – Informationen finden.
Die Getting Started Guides sind aufgabenbasiert,
d. h. es steht nicht primär die verwendete Technologie
im Vordergrund, sondern ein bestimmtes Ziel wie zum
Beispiel das Persistieren von Daten in eine relationale
Datenbank, das Veröffentlichen von Daten als HTTPRessourcen usw. Die Beispiele sind in ungefähr zehn
Minuten durchzuarbeiten, nutzen Spring Boot und erlauben dem Entwickler so, sich rasch in Spring und seine
Ökosystemprojekte einzuarbeiten.
Zeitplan und Ausblick
Das erste offizielle Release der Spring-IO-Plattform ist für
das erste Quartal 2014 geplant. Initial bestehen wird es
aus einem wohldefinierten Set an zusammenarbeitenden
Spring-Modulen und den entsprechenden Mechanismen,
diese Module auf einfachste Weise zu konsumieren. Zusammen mit dem Kernframework in Version 4 bietet
Spring eine zukunftsfähige Plattform für Java-basierte
Unternehmensanwendungen im Jahre 2014.
Oliver Gierke ist Teil des Spring-Data-Teams bei SpringSource, a
division of VMware, und leitet dort das JPA-, MongoDB- und CoreModul. Seit über sechs Jahren widmet er sich dem Entwickeln von
Java-Enterprise-Applikationen, Open-Source-Projekten und ist Mitglied der JPA 2.1 Expert Group. Seine Arbeitsschwerpunkte liegen
im Bereich Softwarearchitektur, Spring und Persistenztechnologien. Er ist regelmäßiger Sprecher auf deutschen und internationalen Konferenzen sowie
Autor von Fachartikeln.
Getting Started Guides
Ein weiterer, lose mit Spring IO verbundener Aspekt
der Plattform sind die komplett überarbeiteten Getting
Start­ed Guides, die auf http://spring.io zu finden sind.
Die große Popularität des Spring Frameworks sorgte
Links & Literatur
[1] http://jaxenter.de/artikel/Spring-XD-fuer-Big-Data
Anzeige
Anzeige
Herunterladen