The General Availability (GA) release of Spring Boot version 2.0 came a step closer with the announcement of release candidate 1 (RC1) on January 31st.
The countdown is now in its final stages, with GA currently planned in the next few weeks. Even at this late stage some noteworthy additions are still being released alongside a large number of issues being resolved and pull requests being merged (an impressive total of 314).
Many configuration properties have been renamed or removed, and developers will need to update their application.properties or application.yml accordingly. To ease migration, a spring-boot-properties-migrator project has been created with the goal of easing the pain of migration. When added as a dependency to a legacy project it analyzes the application’s environment, prints diagnostics at startup, and also temporarily migrates the properties to their new configuration.
One of the key innovations Spring Boot introduced to Java programming was embedding a servlet container within the executable JAR that an application is packaged in. Spring Boot offers Tomcat, Undertow and Jetty as options in this area. With the advent of HTTP/2 previous milestone releases of Spring Boot had already added support for the protocol to Tomcat and Undertow. With RC1, Jetty now also supports HTTP/2, with native TLS support provided via Google's Conscrypt library. This is significant, as Spring Boot’s default server, Tomcat 8.5.x. only supports HTTP/2 if the libtcnative library and its dependencies are installed on the host operating system.
For observability, Micrometer integration has been enhanced. RabbitMQ, JVM threads and Garbage Collection (GC) metrics are now automatically instrumented, and asynchronous controllers are also now instrumented. An InfluxDB server can now also be monitored via the health endpoint.
On the data side, it is also now possible to customize the properties Hibernate uses in a more fine-grained way. A RedisCacheConfiguration can be exposed to take control over the RedisCacheManager, and the Flyway and Liquibase configuration is now more flexible. GSON support has been greatly enhanced, thanks to an external contribution.
A big attention-getter has been the highly popular Spring Boot banners -- ASCII graphics that are streamed to stdout on startup -- which earned popularity as a means for development teams to stamp their own brand on an application. In this Spring Boot 2 does not disappoint, for it now supports animated GIFs, as this live demo at SpringOne Platform 2017 shows.
Details of other release features are available on the release notes. Stéphane Nicoll, Spring Boot committer at Pivotal, tweeted that RC2 is scheduled for February 20th. Barring any delays, 2.0 GA is then scheduled for release a week later. The full release schedule can be viewed here.