1. Spring Framework Version
Spring Boot 1.x relies on Spring Framework 4.x, while Spring Boot 2.0 uses Spring 5.x. This update includes significant improvements, particularly with regards to reactive programming.
2. Reactive Programming Support
Spring Boot 2.0 adds support for Spring WebFlux, allowing reactive, non-blocking web applications to be created using Project Reactor. Spring Boot 1.x does not.
3. Java Version Requirement
Spring Boot 1.x supports Java 7 and later. Conversely, Spring Boot 2.0 supports Java 8 and later and provides Java 9+ features support.
4. Embedded Server Updates
Whereas Spring Boot 1.x has embedded Tomcat 8 as a default, Spring Boot 2.0 has embedded Tomcat 8.5 as default and also updates Jetty and Undertow to newer versions.
5. Actuator Improvements
In Spring Boot 2.0, the Actuator module has been totally revamped. Endpoints such as /health, /metrics, etc., now fall under the base url /actuator/. They are even secured by default and need to be made explicit in configuration. In 1.x, they were enabled and exposed by default.
6. Configuration Improvements
Spring Boot 2.0 has improved support for relaxed binding and enhanced more powerful mechanisms to bind configuration properties with @ConfigurationProperties. It's more flexible and consistent than 1.x.
7. Gradle Plugin
The legacy Gradle plugin was used by Spring Boot 1.x. Spring Boot 2.0 brings an official and enhanced Gradle plugin that follows contemporary Gradle conventions.
8. Security Defaults
In 2.0, Spring Security has enhanced defaults. It provides more configuration options and safe defaults. For instance, endpoints are default-locked unless they are explicitly allowed.
9. Data Access Improvements
Spring Boot 2.0 provides support for Reactive Repositories via Spring Data WebFlux. This enables completely reactive data access. Spring Boot 1.x only allows blocking JPA and traditional Spring Data.
10. Logging Enhancements
Spring Boot 2.0 has improved control and formatting of logs. Although 1.x was also SLF4J + Logback-based, 2.0 has simpler customization and structured logging support.