文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

maven grpc整合springboot demo的方法

2023-06-30 11:00

关注

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

1. 说明

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

2. 公共部分

2.1 添加依赖

        <dependency>            <groupId>net.devh</groupId>            <artifactId>grpc-spring-boot-starter</artifactId>            <version>2.12.0.RELEASE</version>        </dependency>        <dependency>            <!-- Java 9+ compatibility -->            <groupId>javax.annotation</groupId>            <artifactId>javax.annotation-api</artifactId>        </dependency>

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

<plugin>                <!--                    protobuf生成插件-->                <groupId>org.xolstice.maven.plugins</groupId>                <artifactId>protobuf-maven-plugin</artifactId>                <version>0.6.1</version>                <configuration>                    <protocArtifact>com.google.protobuf:protoc:3.17.3:exe:${os.detected.classifier}                    </protocArtifact>                    <pluginId>grpc-java</pluginId>                    <pluginArtifact>io.grpc:protoc-gen-grpc-java:1.39.0:exe:${os.detected.classifier}                    </pluginArtifact>                    <!--默认值-->                    <protoSourceRoot>${project.basedir}/src/main/proto</protoSourceRoot>                    <outputDirectory>${project.basedir}/src/main/java</outputDirectory>                    <clearOutputDirectory>false</clearOutputDirectory>                </configuration>                <executions>                    <execution>                        <goals>                            <goal>compile</goal>                            <goal>compile-custom</goal>                        </goals>                    </execution>                </executions>            </plugin>

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代码(也就是接口依赖代码)

maven grpc整合springboot demo的方法

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<Hello.HelloResp> 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的方法”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯