Spring Boot 2.0 was finally released on May 1, 2018, and my blog has been upgraded to it from Spring Boot 1.5.9.
Spring Boot 2.0 is a major update of 17 months' work. It breaks some configurations due to refactoring and dependency updates along with it.
spring-boot-starter-mobilestarter is removed.
spring-sessionshould be replaced by
Gradle plugin updates:
- Dependency management plugin is no longer automatically applied, and should be explicitly enabled.
bootRepackagetask is replaced by
bootJar, and as a result
jartask is no longer not invoked when building executable jars. This breaks configuration for
- Hibernate validator from 5.3.6 to 6.0.7:
org.hibernate.validator.constraints.NotEmptyis deprecated and
javax.validation.constraints.NotEmptyshould be used.
- Flyway: Spring Boot's default
flyway.tablehas been changed from
spring-data-commonsfrom 1.13 to 2.0: Configuration for 1-based pagination has to be changed.
ErrorViewResolverare moved from package
FreeMarkerAutoConfiguration.FreeMarkerWebConfigurationis replaced by a package-private class, breaking the configuration that extends the class.
management.security.*is gone, and current solution is to configure web security programatically, making it harder to configure different strategies for different profiles.
- All actuator endpoints are moved to
One problem that I found when upgrading is that not all changes are listed in Spring Boot 2.0 release note and migration guide. You have to build the project to check errors and warning, and solve them one by one. Sometimes you have to check its source code for an alternative solution to broken configuration.