Spring Boot 2.x相较于1.x版本有以下新特性和区别:
1. 支持Java 8及以上版本,不再支持Java 7。
2. 默认使用Reactor和WebFlux来提供响应式编程支持,引入了WebFlux框架。
3. 引入了新的`WebClient`用于进行非阻塞的HTTP通信。
4. 更新了内嵌的Servlet容器,支持Servlet 4.0。
5. 支持了响应式Spring Data模块,如Spring Data R2DBC和Spring Data Cassandra Reactive等。
6. 引入了Micrometer来提供度量和监控功能。
7. 使用Spring Boot Actuator的WebFlux功能时,可以提供更详细的度量和监控数据。
8. 依赖管理升级,使用更稳定和兼容的依赖版本。
9. 默认使用HikariCP作为连接池的实现,取代了Tomcat JDBC Pool。
10. 改进了配置属性绑定机制,引入了新的`@ConstructorBinding`和`@ConstructorProperties`注解。
11. 提供了一些新的错误处理方式,如函数式端点的错误处理和自定义错误页面的支持。
12. 对于SAML(Security Assertion Markup Language)和OAuth 2.0的支持进行了改进,提供了更灵活的配置选项。
13. 引入了对WebFlux的函数式端点的编程模型,提供了更灵活和可组合的方式来定义API端点。
14. 默认的ApplicationContext解析时机从构建时改为启动时,提供更好的灵活性。
总的来说,Spring Boot 2.x相较于1.x版本主要引入了响应式编程的支持,升级了依赖版本,改进了配置机制,提供了更灵活和强大的功能。需要注意的是,由于引入了新的特性和升级了依赖,Spring Boot 2.x版本可能会引入一些不兼容的变更,因此在升级时需要进行相应的测试和调整。