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.