您好,登錄后才能下訂單哦!
這篇文章主要介紹了maven grpc整合springboot demo的方法的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇maven grpc整合springboot demo的方法文章都會有所收獲,下面我們一起來看看吧。
GRPC基于protobuf來定義接口。分為server端和client端。其中server端提供接口實現,client通過調用server端接口從而獲取期望數據。
<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>
添加目錄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 service service HelloService{ // service中需要進行調用的具體方法 rpc hello(HelloReq) returns (HelloResp){} }
插件導入成功后,點擊下圖選中的protobuf:compile
和protbuf:compile-custom
依次生成對應的Java代碼(也就是接口依賴代碼)
service代碼如下
import io.grpc.stub.StreamObserver; import net.devh.boot.grpc.server.service.GrpcService; @GrpcService public 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(); } }
client端測試調用代碼如下
import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @SpringBootTest public class GrpcTest { @Autowired private HelloSerivce helloSerivce; @Test public void test1() throws Exception{ helloSerivce.haha("牛哈哈"); } }
關于“maven grpc整合springboot demo的方法”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“maven grpc整合springboot demo的方法”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。