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 service service HelloService{ // service中需要进行调用的具体方法 rpc hello(HelloReq) returns (HelloResp){} }
2.3 透過protobuf產生Java程式碼
外掛程式匯入成功後,點選下圖選取的protobuf:compile
與protbuf:compile-custom
依序產生對應的Java程式碼(也就是介面依賴程式碼)
3. server端介面具體實作
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(); } }
4 client端介面具體實作
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的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

最佳化Maven建置工具:最佳化編譯速度:利用平行編譯和增量編譯。優化依賴關係:分析依賴項樹,使用BOM(材料清單)管理傳遞依賴項。實戰案例:透過範例說明最佳化編譯速度和相依性管理。

如何使用gRPC實作檔案上傳?建立配套服務定義,包括請求和回應訊息。在客戶端,開啟要上傳的檔案並將其分成區塊,然後透過gRPC串流傳輸到服務端。在服務端,接收文件區塊並將其儲存到文件中。服務端在文件上傳完成後發送回應,指示上傳是否成功。

Maven是Java專案管理和建置工具,被廣泛應用於Java專案的開發中。在使用Maven進行專案建置的過程中,往往會遇到一些常見的環境配置問題。本文將針對這些常見問題進行解答,並提供具體的程式碼範例,幫助讀者避免常見的配置錯誤。 1.Maven環境變數配置錯誤問題描述:使用Maven時,如果環境變數配置不正確,可能導致Maven無法正常運作。解決方法:確保

Maven本地倉庫設定指南:輕鬆管理專案依賴隨著軟體開發的發展,專案的依賴套件管理變得越來越重要。 Maven作為一個優秀的建置工具和依賴管理工具,在專案開發過程中扮演著至關重要的角色。 Maven預設會從中央倉庫下載專案依賴,但有時我們需要將一些特定的依賴套件儲存到本地倉庫中,以便離線使用或避免網路不穩定的問題。本文將介紹如何設定Maven本地倉庫,以便輕鬆管理

IDEA(IntelliJIDEA)是一款強大的整合開發環境,可協助開發人員快速且有效率地開發各種Java應用程式。在Java專案開發中,使用Maven作為專案管理工具能夠幫助我們更好地管理依賴函式庫、建置專案等。本文將詳細介紹如何在IDEA中建立一個Maven專案的基本步驟,同時提供具體的程式碼範例。步驟一:開啟IDEA並建立新專案開啟IntelliJIDEA

使用Maven建置Java專案時,經常會遇到需要設定Java版本的情況。正確設定Java版本不僅可以確保專案在不同環境中正常運行,還能避免一些相容性問題,提升專案的穩定性和可維護性。本文將介紹Maven設定Java版本的最佳實務和推薦方法,並提供具體的程式碼範例供參考。 1.在pom.xml檔中設定Java版本在Maven專案的pom.xml檔中,可以通

建置流暢無阻:如何正確配置Maven鏡像位址在使用Maven建置專案時,配置正確的鏡像位址是非常重要的。正確配置鏡像位址可以加快專案建置的速度,避免網路延遲等問題。本文將介紹如何正確配置Maven鏡像位址,並給出特定的程式碼範例。為什麼需要設定Maven鏡像位址Maven是專案管理工具,可以自動化建置專案、管理依賴、產生報表等。在Maven建置專案時,通常

Maven是一個開源的專案管理工具,常用於Java專案的建置、依賴管理及文件發佈等任務。在使用Maven進行專案建置時,有時我們希望在執行mvnpackage等指令時忽略測試階段,這在某些情況下會提高建置速度,尤其是在需要快速建置原型或測試環境時。本文將詳細介紹如何在Maven中忽略測試階段,並附有具體的程式碼範例。為什麼要忽略測試在專案開發過程中,通常會
