Spring gRPC 1.0.0 的后续步骤

工程 | Dave Syer | 2025 年 11 月 5 日 | ...

这是Road to GA 系列的一篇新博客文章,这次我们将向大家更新关于将 Spring gRPCSpring 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.01.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 版本的项目,应该会产生最小的干扰。

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

VMware 提供培训和认证,助您加速进步。

了解更多

获得支持

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件,只需一份简单的订阅。

了解更多

即将举行的活动

查看 Spring 社区所有即将举行的活动。

查看所有