1.命名改变
从 Spring Cloud 2020.0.0-M1 开始,Spring Cloud 废除了这种英国伦敦地铁站的命名方式,而使用了全新的 “日历化” 版本命名方式:YYYY.MINOR.MICRO
- YYYY:表示 4 位年份;
- MINOR:代表一个递增的数字,每年以 0 开始递增;
- MICRO:代表版本号后缀。
2.Spring Boot 版本升级
Spring Cloud 依赖的 Spring Boot 版本升级到2.4.x。Spring Boot2.4.x 对配置文件做了调整,参考:
Spring Boot 2.4.0正式发布,全新的配置文件加载机制(不向下兼容)
3.配置文件调整
Bootstrap 默认为禁用状态。如果需要使用,可以通过一下方式开启:
方式一:添加依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
方式二:添加参数
spring.cloud.bootstrap.enabled = true
或
spring.config.use-legacy-processing = true
这个参数需要设置在环境变量或者系统级参数,或者命令行参数。
4.netflix模块移除
- spring-cloud-netflix-archaius
- spring-cloud-netflix-concurrency-limits
- spring-cloud-netflix-core
- spring-cloud-netflix-dependencies
-
spring-cloud-netflix-hystrix
- spring-cloud-netflix-hystrix-contract
- spring-cloud-netflix-hystrix-dashboard
- spring-cloud-netflix-hystrix-stream
-
spring-cloud-netflix-ribbon
- spring-cloud-netflix-sidecarspring-cloud-netflix-turbine
- spring-cloud-netflix-turbine-stream
-
spring-cloud-netflix-zuul
- spring-cloud-starter-netflix-archaius
- spring-cloud-starter-netflix-hystrix
- spring-cloud-starter-netflix-hystrix-dashboard
- spring-cloud-starter-netflix-ribbon
- spring-cloud-starter-netflix-turbine
- spring-cloud-starter-netflix-turbine-stream
- spring-cloud-starter-netflix-zuul
5.新增模块
- spring-cloud-starter-bootstrap兼容bootstrap配置方式
-
spring-cloud-starter-loadbalancer替换
spring-cloud-netflix-ribbon
- spring-cloud-starter-openfeign
- 等等
更多变更细节:
Spring Cloud 2020.0.0 (aka Ilford) Is Available
Spring Cloud 2020.0 Release Notes · spring-cloud/spring-cloud-release Wiki · GitHub
Netflix组件替代方案 :
Netflix | 推荐替代品 |
---|---|
Hystrix | Resilience4j |
Ribbon | Spring Cloud Loadbalancer |
Zuul |
Spring Cloud Gateway |
Archaius | Spring Boot外部化配置 + Spring Cloud配置 |
最新 Maven 依赖管理方式:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>2020.0.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
...
</dependencies>
最新 Gradle 依赖管理方式:
buildscript {
dependencies {
classpath "io.spring.gradle:dependency-management-plugin:1.0.10.RELEASE"
}
}
apply plugin: "io.spring.dependency-management"
dependencyManagement {
imports {
mavenBom 'org.springframework.cloud:spring-cloud-dependencies:2020.0.0'
}
}
dependencies {
compile 'org.springframework.cloud:spring-cloud-starter-config'
compile 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client'
//...
}