Java 8 und Java-EE-7-Support in Spring 4.0 M1

Hartmut Schlosser

Das Spring Framework steuert auf sein 4.0-Release zu. Schon im Oktober, spätestens November dieses Jahres soll Spring 4 fertig werden, hatte Spring-Mitbegründer Jürgen Höller auf der JAX 2013 versprochen. Ein ambitioniertes Unterfangen, soll Spring 4 doch neben einer modernisierten Architektur den Support für Java 8 und viele der Java-EE-7-Komponenten bringen. Die laufenden Arbeiten können nun in Form des ersten Meilenstein-Releases von Spring 4 begutachtet werden.

Im vorliegenden M1 sind bereits erste Teile der Java-8-Unterstützung umgesetzt. Basierend auf dem OpenJDK 8 Build 88+ wird das 1.8-Bytecode-Format beim Komponenten-Scan und der Unterklassen-Generierung unterstützt. Lambda-Ausdrücke und Methoden-Referenzen funktionieren gegen Spring Callback Interfaces. JSR-310 Date-Time Werttypen können im Spring Data Binding eingesetzt werden.

Auch der erste Schub der Java-EE-7-Integrationen wurde geliefert: JMS 2.0, JPA 2.1, Bean Validation 1.1 und JSR-236 Concurrency. Zudem wurde mit @Conditional ein generalisierter Condition-Mechanismus für Bean Definitionen umgesetzt, genauso wie das neue WebSocket Endpoint Model. Es handelt sich hier um erste Implementierungen, die mit Vorsicht zu genießen sind, aber jedenfalls schon aufzeigen, in welche Richtung es geht.

Da sich Java 8 selbst bekanntlich verzögert, ist auch der entsprechende Support in Spring noch nicht in Stein gemeißelt.  Zur Verfügbarkeit der JDK 8 Developer Preview (geplant im September 2013) soll auch ein korrespondierender Spring Framework 4.0 Release Candidate erscheinen. Geplant ist, diesen schon zur SpringOne-Konferenz zu präsentieren (9. bis 12. September).

Neben den Entwicklungen an Spring 4 laufen auch die Maintenance-Arbeiten an der alten Spring-3.2.x-Linie weiter. Hier wurde mit Spring 3.2.3 ein Update vorgelegt, das neben Bugfixes auch die Unterstützung der OpenJDK 8 Runtime bringt. Den vollen Java-8-Support wird es indes nicht für Spring 3.x geben, insbesondere das JDK 8 Bytecode-Format, das beispielsweise für die Lambda-Ausdrücke nötig ist, bleibt außen vor. Spring 3.2.x wird lediglich Deployments auf JDK 8 Runtimes für Anwendungen unterstützen, die gegen JDK 7 kompiliert wurden.
 

Geschrieben von
Hartmut Schlosser
Hartmut Schlosser
Hartmut Schlosser ist Redakteur und Online-Koordinator bei Software & Support Media. Seine Spezialgebiete liegen bei Java-Enterprise-Technologien, JavaFX, Eclipse und DevOps. Vor seiner Tätigkeit bei S & S Media studierte er Musik, Informatik, französische Philologie und Ethnologie.
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.