领先一步
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://localhost:"+this.wsPort)
.predicate(alwaysTrue())
.and()
.build();
}
现在写法如下
@Bean
public RouteLocator wsRouteLocator() {
return Routes.locator()
.route("testws")
.predicate(alwaysTrue())
.uri("ws://localhost:"+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'
...
}