Developer

Aktuelle Themen

Convention over Configuration in Spring Boot

Komplexe Konfigurationen für eine simple Testanwendung gehören der Vergangenheit an: Mit Convention over Configuration in Spring Boot lässt sich die Komplexität von Konfigurationen stark reduzieren: Solange man sich an die Konventionen hält, die das Framework vorgibt, entfallen viele manuelle Konfigurationen. Beispielsweise werden die passenden Spring Beans erzeugt, wenn bestimmte Klassen im Pfad enthalten sind. Sind die passenden Beans hingegen bereits durch eine manuelle Konfiguration vorhanden, werden sie auch nicht erzeugt. [1]

Eine Spring Boot Anwendung kann über die vom Framework festgelegten Standardkonfigurationen somit schnell lauffähig gemacht werden, der Entwickler kann diese jedoch auch problemlos überschreiben.

Mehr

Java 9 erscheint heute

Java 9 wird veröffentlicht

Heute am 21. September 2017 ist es endlich so weit: Java 9 wird veröffentlicht! Die Vorgängerversion Java 8 erschien im März 2014, also vor fast genau 3 1/2 Jahren. Urspünglich war eine Veröffentlichung von Version 9 für das Jahr 2016 geplant.

Die lange Verzögerung ist dem Hauptfeature von Java 9 geschuldet, dem unter dem Namen Jigsaw bekannten Java Module System. Wegen Jigsaw musste das Releasedatum mehr als einmal verschoben werden. Doch nun ist es soweit – Jigsaw ist fertig, und die Java-Entwickler können mit Version 9 durchstarten.

Durch das Modulsystem wird sich Java 9 erheblich auf künftige Java-Projekte auswirken (sowie auf bestehende, die die Migration wagen), da manche Aspekte der Sprache wie z.B. Reflection nicht mehr ohne weiteres funktionieren. Dies bereitet vor allem bei Bibliotheken Schwierigkeiten, auf deren Quellcode man selbst keinen Einfluss hat. Glücklicherweise kann die Modularisierung via Kommandozeilenparameter „entschärft“ werden, wodurch eine sanfte Migration ermöglicht wird.

Wie geht es weiter?

Damit sich Verzögerungen bei großen Features wie Jigsaw in Zukunft nicht mehr auf das Erscheinungsdatum von Java-Releases auswirken, könnte Oracle künftig Releases im Halbjahrestakt herausbringen. Dies schlägt Mark Reinhold, Chief Architect der Java Platform Group bei Oracle in seinem Blog vor. In den zeitlich fixierten Releases sollen dann alle bis zum Erscheinungsdatum fertig gestellten Features enthalten sein. Außerdem soll es alle drei Jahre ein LTS-Release mit Long Time Support geben.

Auch das Versionierungsschema könnte sich ändern. Um zu unterstreichen dass es sich um zeitbasierte Releases handelt, soll die jeweilige Releasenummer sich aus dem Jahr und Monat des Erscheinungsdatums zusammen setzen. Die Version nach Java 9 könnte also 18.3 lauten.

Java 9 kommt mit Jigsaw

Nachdem Jigsaw in der ersten Abstimmungsrunde abgelehnt worden war, wurde das Modul-System für Java jetzt im zweiten Anlauf abgesegnet. Fast alle Abstimmenden Parteien stimmten dafür, nur Redhat enthielt sich seiner Stimme. Gegenstimmen gab es damit diesmal keine mehr.

Abstimmungsergebnis

Nach der Ablehnung am 24. April führte die Expertengruppe mehrere Abstimmungsrunden durch, um zu einem Konsens bezüglich der noch offenen Punkte zu kommen. Einer davon war eine zu restriktive Handhabung der Reflection-API über Modulgrenzen hinweg. Der angestrebte Konsens konnte nun offensichtlich erreicht werden.

Die Ablehnung hatte mitunter eine Verschiebung des Releasetermins von Java 9 zur Folge. Statt Ende Juli wird Java 9 nun erst am 21. September 2017 erscheinen.

Künftig wird es für die Java-Plattform feste Release-Termine geben. Releases sollen demnach alle bis zum Termin fertig gestellten Features beinhalten, und nicht wie in der Vergangenheit  aufgrund von Verspätungen großer Funktionalitäten, wie Lambdas in Java 8 oder eben Jigsaw, verzögert werden. Dies bedeutet für die Zukunft mehr Releases, sowie häufigere Veröffentlichungen von kleinen Verbesserungen von Java.

Abstimmung: Java Platform Module System – Public Review Reconsideration Ballot

Jigsaw-Entwurf von Expertengruppe abgelehnt

Bis zum 8. Mai hatten die Mitglieder der zuständigen Expertengruppe Zeit, um über das Modularisierungs-System der Java-Plattform abzustimmen. Die Entscheidung fiel gegen den Entwurf. Nicht lange vor dem geplanten Erscheinungsdatum von Java 9 erleidet damit das unter JSR 376 laufende Modularisierungsprojekt, besser bekannt unter dem Namen „Jigsaw“, einen erneuten Rückschlag. Jigsaw sollte bereits Teil von Java 8 sein, wurde aber wegen signifikanten ungelösten technischen Herausforderungen auf Java 9 verschoben.

Mehr

Lazy Evaluation in Java mit Lambdas

Mit Java 8 haben die Lambdas Einzug in die Sprache gehalten. Am Beispiel von Logging zeigt dieser Artikel, wie man diese anonymen Funktionen für eine Lazy Evaluation einsetzen kann. Ziel ist es dabei, teure Operationen nur im Bedarfsfall auszuführen.

Mehr