领先一步
VMware 提供培训和认证,助您加速前行。
了解更多我代表社区,很高兴宣布 Spring Cloud Finchley 发布列车的里程碑 3 (M3) 今天可用。此版本可以在 Spring Milestone 仓库中找到。您可以查阅 Finchley 的 发布说明获取更多信息。
Finchley 发布列车中包含的许多项目的一个共同主题是,在 Spring Reactive 主题下添加对 WebFlux、WebClient、Micrometer 或其他集成的支持。
WebFlux 和 Reactor 再次获得支持。OAuth 支持不包含在内。spring-cloud-sleuth-zipkin-stream 模块已被移除。
引入了一个新的 GatewayFilter 接口,以减少与 Spring Framework 中现有 WebFilter 的混淆。现在,任何自定义实现都需要实现 GatewayFilterFactory,而不是 WebFilterFactory。此外,Java DSL 中对 WebFilterFactories 的引用需要替换为 GatewayFilterFactories。
Java DSL 也略有变化。现在 uri() 方法是终止操作符,而不是 and()。
之前写法如下
@Bean
public RouteLocator wsRouteLocator() {
    return Routes.locator()
            .route("testws")
                .uri("ws://:"+this.wsPort)
                .predicate(alwaysTrue())
                .and()
            .build();
}
现在写法如下
@Bean
public RouteLocator wsRouteLocator() {
    return Routes.locator()
            .route("testws")
                .predicate(alwaysTrue())
                .uri("ws://:"+this.wsPort)
            .build();
}
可以在 http://start.spring.io 获取网关支持。
一些包被重构为模块,但这不应影响任何使用 starter 的人。
详细的 /routes 执行器现在通过 /routes/details 访问,而不是 /routes?format=details。
Eureka 已更新到版本 1.8.4
添加了对使用 Spring RestDocs 进行 Rest Assured 测试的支持。
Bus 端点已从 /bus/* 重新映射到 /bus-*。(这可能会根据社区反馈再次更改)
| 旧 | 新 | 
|---|---|
| /bus/env | /bus-env | 
| /bus/refresh | /bus-refresh | 
Spring Cloud AWS 尚未与 Finchley 发布列车兼容。
一个新的 Task 里程碑将包含在下一个 Finchley 里程碑中。
添加了对 Vault 数据库后端支持。
内部已升级以与 Spring Boot 2 兼容。欢迎就 RefreshScope 或 @ConfigurationProperties 重新绑定提供任何反馈。
许多不遵循正常 Spring Cloud 命名约定的 starter 已在 Edgware 中重命名。以下是已移除 starter 及其替代品的表格
| 已移除 | Finchley Starter | 
|---|---|
| spring-cloud-starter-archaius | spring-cloud-starter-netflix-archaius | 
| spring-cloud-starter-atlas | spring-cloud-starter-netflix-atlas | 
| spring-cloud-starter-eureka | spring-cloud-starter-netflix-eureka-client | 
| spring-cloud-starter-eureka-server | spring-cloud-starter-netflix-eureka-server | 
| spring-cloud-starter-feign | spring-cloud-starter-openfeign | 
| spring-cloud-starter-hystrix | spring-cloud-starter-netflix-hystrix | 
| spring-cloud-starter-hystrix-dashboard | spring-cloud-starter-netflix-hystrix-dashboard | 
| spring-cloud-starter-ribbon | spring-cloud-starter-netflix-ribbon | 
| spring-cloud-starter-spectator | spring-cloud-starter-netflix-spectator | 
| spring-cloud-starter-turbine | spring-cloud-starter-netflix-turbine | 
| spring-cloud-starter-turbine-stream | spring-cloud-starter-netflix-turbine-stream | 
| spring-cloud-starter-zuul | spring-cloud-starter-netflix-zuul | 
作为 Finchley.M3 的一部分,以下模块已更新
| 模块 | 版本 | 
|---|---|
| Spring Cloud Dependencies | 2.0.0.M4 | 
| Spring Cloud Sleuth | 2.0.0.M3 | 
| Spring Cloud Gateway | 2.0.0.M3 | 
| Spring Cloud Config | 2.0.0.M3 | 
| Spring Cloud Cloudfoundry | 2.0.0.M1 | 
| Spring Cloud Build | 2.0.0.M4 | 
| Spring Cloud Consul | 2.0.0.M2 | 
| Spring Cloud Netflix | 2.0.0.M3 | 
| Spring Cloud Security | 2.0.0.M1 | 
| Spring Cloud Contract | 2.0.0.M3 | 
| Spring Cloud Bus | 2.0.0.M2 | 
| Spring Boot Starter | 2.0.0.M5 | 
| Spring Cloud Aws | 2.0.0.M1 | 
| Spring Boot Dependencies | 2.0.0.M5 | 
| Spring Cloud Stream | Elmhurst.M2 | 
| Spring Cloud Task | 2.0.0.M1 | 
| Spring Cloud Vault | 2.0.0.M3 | 
| Spring Cloud Zookeeper | 2.0.0.M2 | 
| Spring Boot | 2.0.0.M5 | 
| Spring Cloud Commons | 2.0.0.M3 | 
一如既往,欢迎在 GitHub、Gitter、Stack Overflow 或 Twitter 上提供反馈。
使用 Maven 并引入 BOM (仅依赖管理) 开始使用
<repositories>
    <repository>
        <id>spring-milestones</id>
        <name>Spring Milestones</name>
        <url>http://repo.spring.io/milestone</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Finchley.M3</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.3.RELEASE"
    }
}
repositories {
    maven {
        url 'http://repo.spring.io/milestone'
    }
}
apply plugin: "io.spring.dependency-management"
dependencyManagement {
    imports {
        mavenBom 'org.springframework.cloud:spring-cloud-dependencies:Finchley.M3'
    }
}
dependencies {
    compile 'org.springframework.cloud:spring-cloud-starter-config'
    compile 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client'
    ...
}