Spring Boot 2.1.0 released

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.