Spring Cloud 2020.0.0新特性以及主要变更点

  • Post author:
  • Post category:其他


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'
  //...
}



版权声明:本文为Anenan原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。