Spring Boot 2.1.0
Am 30.10.2018 wurde Spring Boot 2.1.0 als erstes Punktrelease veröffentlicht. Auch diesmal gibt es wieder jede Menge interessante und wichtige Neuerungen in dem beliebten Java Framework.
Welche Frameworks wurden geupdatet?
Zunächste wollen wir uns einen Überblick über die geänderten Abhängigkeiten von Spring Boot 2.1.0 verschaffen:
- Hibernate 5.3
- Micrometer 1.1
- Reactor Californium
- Spring Data Lovelace
- Spring Framework 5.1
- Tomcat 9
- Undertow 2
Performance Verbesserungen
Als Teil der anhaltenden Bemühungen die Performance von Spring Boot Anwendungen stetig zu steigern, wurde teilweise ein signifikater Fortschritt erziehlt bei den Startupzeiten und dem Speicherverbrauch.
Wie bereits in dem Artikel Spring Boot 2.1 Changelog beschrieben, können Anwendungen jetzt im sogenannten deferred Mode von Spring Data JPA gestartet werden. Dabei wird die Initialisierung (das Bootstrapping) von Hibernate in einen Hintergrund Thread ausgelagert und paralell zur restlichen Initialisierung der Anwendung ausgeführt.
spring.data.jpa.repositories.bootstrap-mode=deferred
Java 11 Support
Mit dem Update auf Spring Framework 5.1 folgt das Spring Boot 2.1.0 Framework wartet ebenfalls mit der Unterstützung von Java 11 auf. Gleichzeitig wird weiterhin Java 8 als minimale Java Version beibehalten.
In den Properties werden DataSize Angaben unterstützt
In der application.properties können jetzt als Einheiten GB,MB,KB etc. angegeben werden. Ähnlich zu den unter Spring Boot 2.0.0 eingeführten Durations.
Neue Actuator Endpoints
Es wurden neue Actuator Endpoints zur Verfügung gestellt. Ein Endpoint stell Informationen zum CacheManager dar und der zweite Endpoint gibt eine Graph Representation der Komponenten von Spring Integration.
/actuator/caches
/actuator/integrationgraph
Bean Overriding
Mit dem Release 2.1.0 wird das Überschreiben von Bean per default verhindert. Sollte dieses in der Anwendung weiterhin benötigt werden, so kann dieses über die Property
spring.main.allow-bean-definition-overriding=true
geändert werden.
Änderungen die Spring Security betreffen
Bislang war es so, dass wenn spring security im Classpath vorhanden war, dass ausnahmslos alle Endpoints gesichert waren. Hiervon gibt es jetzt eine Ausnahme! Die Endpoints /info und /health werden wegen der Konsistenz jetzt nicht mehr automatisch gesichert. Sollte diese Endpoints gesichert werden, dann muss dieses expliziet geschehen.
Änderungen im Logging
Mit Spring Framework 5.1 wurden auch Verfeinerungen im Logging vorgenommen. Es sind Spring MVC und Spring WebFlux von den Änderungen betroffen. Möchte man das alte Debuggingverhalten von Spring Boot 2.0.0 wiederherstellen, dann kann das über die Property logging.level.web geschehen.
logging.level.web=debug # altes Verhalten vor Spring Boot 2.1.0 wiederherstellen
Weitere Änderungen
Weitere Änderungen sind im Spring Boot 2.1.0 Changelog zu entnehmen.
Alle Änderungen in diesem Release sind wie immer ausführlich im Release Notes Spring Boot 2.1.0 vorhanden.
Updates der Abhängigkeiten im Einzelnen
An dieses Stelle werde ich kurz auf die wichtigsten Änderungen in den Frameworks eingehen.
Hibernate 5.3.7
Der Changelog von Hibernate ist relativ klein und enthält wenig aufregenes.
Micrometer
Das Update von Micrometer enthält eine Reihe von weiteren Monitorsystemen. Mit AppOptics, Azure Monitor, Dynatrace, Elastic, Humio, KairosDB, Stackdriver, Sysdig, StatsD kommen also insgesamt 9 weitere Monitorsysteme neu hinzu.
Ebenfalls werden neue Metriken für Jetty Server Thread Pool, PostgreSQL Datenbank, Festplattenplatz, Log4J 1.2 und Kafka gesammelt.
Neben den neuen Metriken und den Anbindungen an die Monitorsysteme, werden eine ganze Reihe weiterer Verbesserungen in Micrometer eingebaut.
Spring Reactor Californium
Die Namensgebung für den Releasetrain des Reactor Projects wird nach den Elementen vergeben. Aktuell ist Californium angesagt. Neues hierzu ist in dem Video von der JavaOne zu sehen.