Spring Boot 3中@GrpcClient注入实例为null的问题解决咨询
Spring Boot 3下gRPC客户端注入null的解决办法
问题原因
你使用的net.devh:grpc-client-spring-boot-starter:2.13.0.RELEASE是基于Spring Boot 2.x开发的,完全不兼容Spring Boot 3.x(Spring Boot 3切换到Jakarta EE API,核心组件版本也有大幅升级),导致@GrpcClient注解无法完成正常注入,最终实例为null。
可行解决步骤
1. 升级gRPC Spring Boot Starter到兼容版本
将starter替换为支持Spring Boot 3的3.x系列(或更高)稳定版,比如3.2.0.RELEASE:
implementation group: 'net.devh', name: 'grpc-client-spring-boot-starter', version: '3.2.0.RELEASE'
2. 替换javax注解依赖为jakarta版本
Spring Boot 3全面迁移到Jakarta EE规范,移除了javax相关依赖,替换原有依赖:
// 移除旧依赖 // implementation 'javax.annotation:javax.annotation-api:1.3.2' // 添加兼容的jakarta依赖 implementation 'jakarta.annotation:jakarta.annotation-api:2.1.1'
3. 同步升级gRPC核心依赖
确保gRPC核心组件版本与starter兼容,比如搭配使用1.59.0(适配3.x系列starter的推荐版本):
implementation group: 'io.grpc', name: 'grpc-stub', version: '1.59.0' implementation group: 'io.grpc', name: 'grpc-protobuf', version: '1.59.0'
4. 升级Protobuf插件(可选但推荐)
原插件版本0.9.2对Java 17和Spring Boot 3支持有限,建议升级到最新稳定版:
plugins { // ...其他插件 id "com.google.protobuf" version "0.10.1" }
5. 验证代码与配置
保持原有的application.yaml配置和SystemService代码不变,重新构建启动项目后,handymanClient即可正常注入。
内容的提问来源于stack exchange,提问作者vszholobov
相关产品推荐
相关产品推荐

