千家信息网

maven grpc整合springboot demo的方法

发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章主要介绍了maven grpc整合springboot demo的方法的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇maven grpc整合springboot
千家信息网最后更新 2025年01月19日maven grpc整合springboot demo的方法

这篇文章主要介绍了maven grpc整合springboot demo的方法的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇maven grpc整合springboot demo的方法文章都会有所收获,下面我们一起来看看吧。

    1. 说明

    GRPC基于protobuf来定义接口。分为server端和client端。其中server端提供接口实现,client通过调用server端接口从而获取期望数据。

    2. 公共部分

    2.1 添加依赖

                        net.devh            grpc-spring-boot-starter            2.12.0.RELEASE                                        javax.annotation            javax.annotation-api        

    添加插件(注意:如果wagon-provider-api无法自动引入,可以现在依赖中引入,以便于依赖的下载,然后在删除依赖坐标即可)

                                    org.xolstice.maven.plugins                protobuf-maven-plugin                0.6.1                                    com.google.protobuf:protoc:3.17.3:exe:${os.detected.classifier}                                        grpc-java                    io.grpc:protoc-gen-grpc-java:1.39.0:exe:${os.detected.classifier}                                                            ${project.basedir}/src/main/proto                    ${project.basedir}/src/main/java                    false                                                                                                        compile                            compile-custom                                                                        

    2.2 添加proto依赖文件

    添加目录src/main/proto,并将目录设置为Source Root,然后在目录src/main/proto下添加文件hello.proto,内容如下

    syntax = "proto3"; //指定proto版本package com.server;// 生成的Java代码的包名option java_package = "com.grpc.server";// 请求参数message HelloReq{    string name = 1;}// 返回参数message HelloResp{    string ret = 1;}// rpc serviceservice HelloService{        // service中需要进行调用的具体方法    rpc hello(HelloReq) returns (HelloResp){}}

    2.3 通过protobuf生成Java代码

    插件导入成功后,点击下图选中的protobuf:compileprotbuf:compile-custom 依次生成对应的Java代码(也就是接口依赖代码)

    3. server端接口具体实现

    service代码如下

    import io.grpc.stub.StreamObserver;import net.devh.boot.grpc.server.service.GrpcService;@GrpcServicepublic class HelloService extends HelloServiceGrpc.HelloServiceImplBase {    @Override    public void hello(Hello.HelloReq request, StreamObserver responseObserver) {        Hello.HelloResp resp = Hello.HelloResp.newBuilder().setRet("你好-->"+request.getName()).build();        responseObserver.onNext(resp);        responseObserver.onCompleted();    }}

    4 client端接口具体实现

    client端测试调用代码如下

    import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;@SpringBootTestpublic class GrpcTest {    @Autowired    private HelloSerivce helloSerivce;    @Test    public void test1() throws  Exception{        helloSerivce.haha("牛哈哈");    }}

    关于"maven grpc整合springboot demo的方法"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"maven grpc整合springboot demo的方法"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。

    0