领先一步
VMware 提供培训和认证,助您加速进步。
了解更多这是Road to GA 系列的一篇新博客文章,这次我们将向大家更新关于将 Spring gRPC 与 Spring Boot 4 集成的计划。最初的计划是在 4.0 版本发布时将 Spring gRPC 的自动配置迁移到 Spring Boot 中。不幸的是,我们一直未能找到时间来合并这一更改,但好消息是,我们已经在现有的 Spring gRPC 项目中添加了对 Spring Boot 4 的支持,并计划在未来几天内发布 1.0 版本。这种安排将持续到合并最终完成,最有可能在 Spring Boot 4.1 的早期里程碑中实现。寻求长期支持的 Spring gRPC 用户将通过此路径获得支持,并且只要他们继续升级 Spring Boot,这将是一个非常简单的过程。
在过渡期(Spring gRPC 1.0 和 Spring Boot 4.0),BOM(材料清单)、自动配置和启动器(它们是使用 Spring gRPC 的推荐机制)将保持其当前的坐标,即 groupId 为 org.springframework.grpc。因此,如果您一直在使用 Spring gRPC 0.12.0,您很可能只需更改依赖管理中的版本。自动配置类本身的包名将发生变化,因此如果您碰巧在任何地方显式使用这些类(这可能是一个少数用例),您可能也需要更改导入。您可能还需要对应用程序进行其他更改,以适应从 Spring Boot 3.x 到 4.x 的迁移。
一旦自动配置合并(预计在 Spring Boot 4.1 中),您将不再需要单独的 BOM,您只需更改依赖管理中启动器的坐标。届时我们将发布明确的指导。
假设您有一个基于旧版 0.12.0 的 gRPC 服务器。使用 Maven,它将如下所示:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.grpc</groupId>
<artifactId>spring-grpc-dependencies</artifactId>
<version>0.12.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.grpc</groupId>
<artifactId>spring-grpc-spring-boot-starter</artifactId>
</dependency>
...
要升级到 1.0.0,您只需更改 <version>。Gradle 也同样适用 - 只需更改依赖管理中的版本
dependencyManagement {
imports {
mavenBom 'org.springframework.grpc:spring-grpc-dependencies:0.12.0'
}
}
dependencies {
implementation 'org.springframework.grpc:spring-grpc-spring-boot-starter'
...
从 0.12.0 到 1.0.0。
如果您像上面的示例和 Spring gRPC 中的示例一样,使用启动器来管理依赖项,那么您的应用程序其余代码应该不需要任何更改。
如果您直接引用自动配置类,包导入将发生变化,例如,对于服务器,您可能有一个 GrpcServerFactoryCustomizer。项目中的所有示例都不需要这样做,因此您可能也不需要做任何事情。
Spring gRPC 中的自动配置和启动器依赖项将在发布时立即弃用。这是故意的,也无需担心。它只是明确表示我们计划在下一个次要版本(1.1.0 和 Spring Boot 4.1)中取代它们,因此所有弃用都只是为了预期依赖坐标中的名称更改。应该没有必要弃用类或方法 - 我们希望迁移到下一个版本尽可能简单。弃用将以 1.0.0 版本发布时重复此公告的形式出现。
Spring gRPC 1.0 即将发布,并提供通常的开源和商业支持安排。在常规存储库位置有可供尝试的快照,以及 1.0.0-RC1(截至 2025/11/12)可供过渡到 1.0.0。新版本将依赖于 Spring Boot 4.0,而不是像最初计划的那样作为 Spring Boot 的一个依赖项。对于已经使用 Spring gRPC 0.x 版本的项目,应该会产生最小的干扰。