jokerconf Joker 2018 (19.10.2018)

Spring Boot 2: what they do not write in release notes


This talk is a "pitfalls digest", a collection of notes about which pitfalls you may encounter in the process of updating the Spring Boot framework to version 2.* and how to fix or bypass them.

When updating a framework, you, of course, always read carefully its release notes and migration guide;) But even if you actually do it, lots of surprises may await you, especially if it’s a major update of such a basic framework as Spring Boot. This framework updates not only itself, but also its BOM, which means ~150 transitive dependencies of all kinds — such an update just cannot go smoothly.

In this "pitfalls digest" talk Vladimir will tell about his experience of porting a microservice app to Spring Boot 2, show all the pitfalls he had encountered and give a solution or a workaround for each of them. For example, he will tell:

  • how reactive stack support breaks backward compatibility at the source code level;

  • why a Gradle plug-in, rewritten from a scratch, can damage building of a complex project and contents of an output JAR;

  • how new rules of the parameters relax binding can interfere with app launching;

  • how to break start of a microservice by accidentally causing a quarrel between monitoring and connection pool;

  • what the Micrometer engine has to do with the scheduled tasks not executing;

  • how the new proxying mode is involved in disappearances of some MBeans from JMX;

  • how WebMVC settings refactoring can disturb the definition of Content-Type in the process of file transferring;

  • what Mockito improvements don’t allow tests to be compiled and fail the tests that have been running smoothly;

  • and other small, but annoying "special effects".

This talk will be useful for developers who are planning or already implementing Spring Boot 2 over the old version or from scratch.