Neue Features in Spring Boot 2.1.1

Der Actuator Endpoint besitzt jetzt health check für Elesticsearch REST Clients. Das Logging für Serlet und Filter Registration wurde verbessert und den restlichen Loggingeinträgen angepasst. Die Konfiguration des LoggingApplicationListeners ignoriert jetzt zusätzliche Leerzeichen (trim) in der Angabe des LoggingLevels. SAP HANA gehört nun zu den bekannten Datenbanken. Hibernate 5.2 kann auch wieder mit Spring Boot 2.1 verwendet werden, wenn dieses als expliziete Abhängigkeit angegeben wird. Zuvor gab es eine ClassNotFoundException. Spring Boot verwendet standardmäßig Hibernate 5.3.

Caused by: java.lang.ClassNotFoundException: org.hibernate.resource.beans.container.spi.BeanContainer
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
    ... 45 common frames omitted

Es kann die SSL Verschlüsselung auf dem Management Port 8081. Der Spring Boot Classloader kann jetzt mit den in Java 9 eingeführten MultiRelease Jars umgehen und diese laden wenn sie in einem ausführbaren Jar sind.

Bug Fixes

Natürlich wurden auch in diesem Release jede Menge Fehler behoben. Unter anderem kann WebFlux, die reaktiven Implementation von Web MVC, nun Fehlerseiten für HTTP Status Codes rendern. Anwendungen die als Abhängigkeiten spring-boot-starter-web und spring-boot-startet-jersey hatten, konnten nicht gestartet werden, weil der Startvorgang mit einer einer Fehlermeldung quittiert wurde.

***************************
APPLICATION FAILED TO START
***************************

Description:

The bean 'requestContextFilter', defined in class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter.class], could not be registered. A bean with that name has already been defined in class path resource [org/springframework/boot/autoconfigure/jersey/JerseyAutoConfiguration.class] and overriding is disabled.

Action:

Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true

Mit Sprng Boot 2.1 wurde das Verhalten von Bean definition overriding geändert, sodass es jetzt zu der Fehlermeldung kommt.

Ein Stacktrace auf der Whitelabel Fehlerrseite wird nun korrekt dargestellt. Das DIV Elemnent wird nun mit style=’white-space:pre-wrap;’ versehen.

Auch das Logging für das Endpoint Mapping wurde verbessert.

Dokumentation von Spring Boot

Wie immer wurde kräftig an der Dokumentation gearbeitet und somit entfällt auch diesmal ein Großteil der gelösten Tickets auf die Java Dokumentation.

Dependencies Upgrades

Hier einige der wichtiges Updates…
Upgrade to Flyway 5.2.3
Upgrade to Jetty Reactive Httpclient 1.0.2
Upgrade to Byte Buddy 1.9.5
Upgrade to Undertow 2.0.16.Final
Upgrade to Rxjava2 2.2.4
Upgrade to Netty Tcnative 2.0.20.Final
Upgrade to Micrometer 1.1.1
Upgrade to Junit Jupiter 5.3.2
Upgrade to Spring Session Bean-SR1
Upgrade to Spring Security 5.1.2.RELEASE
Upgrade to Spring Kafka 2.2.2.RELEASE
Upgrade to Spring Integration 5.1.1.RELEASE
Upgrade to Lombok 1.18.4
Upgrade to Mockito 2.23.4
Upgrade to Jooq 3.11.7
Upgrade to Tomcat 9.0.13
Upgrade to Kafka 2.0.1
Upgrade to Reactor Californium-SR3
Upgrade to Spring Data Lovelace-SR3
Upgrade to Spring Framework 5.1.3