本發(fā)明屬于javaweb應(yīng)用,具體為一種javaweb應(yīng)用到grpc服務(wù)的快速轉(zhuǎn)換方法。
背景技術(shù):
1、javaweb,也被稱為java?web,是用java語(yǔ)言開發(fā)并且可以在萬(wàn)維網(wǎng)上運(yùn)行的程序。它涉及web服務(wù)端和web客戶端兩部分,主要利用通信來(lái)實(shí)現(xiàn)與java的交互,java在后臺(tái)進(jìn)行邏輯處理,而web則在網(wǎng)頁(yè)中顯示內(nèi)容并展現(xiàn)給用戶。
2、grpc是一種高性能、跨語(yǔ)言的遠(yuǎn)程過程調(diào)用(rpc)框架,最初由google開發(fā)并開源。它基于http/2協(xié)議,并使用了protocol?buffers(簡(jiǎn)稱protobuf)作為接口定義語(yǔ)言(idl)來(lái)定義服務(wù)和消息類型。
3、當(dāng)需要將javaweb應(yīng)用到grpc服務(wù)中時(shí),這時(shí)就會(huì)用到轉(zhuǎn)換方法,一般的轉(zhuǎn)換方法,不能直接支持grpc協(xié)議,需要進(jìn)行額外的配置和開發(fā),且需要專門為其定義接口和實(shí)現(xiàn),因此需要對(duì)其進(jìn)行改造和優(yōu)化。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明的目的在于提供一種javaweb應(yīng)用到grpc服務(wù)的快速轉(zhuǎn)換方法,以解決上述背景技術(shù)中提出的問題。
2、為了實(shí)現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案:一種javaweb應(yīng)用到grpc服務(wù)的快速轉(zhuǎn)換方法,該方法的步驟為:
3、a1,創(chuàng)建proto文件:將從controller中獲取的方法映射為message,自動(dòng)生成proto文件;
4、a2,創(chuàng)建desc文件:通過編譯proto文件,生成desc文件;
5、a3,啟動(dòng)應(yīng)用與生成serverservicedefinition:通過加載desc文件,生成serverservicedefinition,并與controller及其方法(action)建立映射關(guān)系。
6、優(yōu)選地,所述a1中的步驟分為:
7、b1,分析java?controller:從java?web應(yīng)用的controller中解析出方法、參數(shù)及其返回類型;
8、b2,定義映射關(guān)系:將java?web應(yīng)用的controller映射為grpc的service,其中controller的方法映射為rpc,controller中的參數(shù)和返回值映射為message;
9、b3,生成proto文件:根據(jù)映射關(guān)系,生成對(duì)應(yīng)的proto文件。
10、優(yōu)選地,所述a3中的步驟為:
11、c1,加載desc文件:在java?web應(yīng)用程序啟動(dòng)時(shí),工具自動(dòng)載入預(yù)先生成的desc;
12、c2,serverservicedefinition生成:根據(jù)desc文件來(lái)構(gòu)建grpc的serverservicedefinition;
13、c3,實(shí)現(xiàn)與controller的并聯(lián):將serverservicedefinition與原始的controller及其方法建立映射關(guān)系。
14、優(yōu)選地,自定義映射規(guī)則:用戶能夠借助配置文件或注解來(lái)自行定義controller到grpcservice的映射邏輯;
15、安全認(rèn)證:通過配置,可以添加grpc的安全認(rèn)證機(jī)制。
16、優(yōu)選地,所述映射關(guān)系:指用戶定義的、將原始的controller及其方法與grpcservice進(jìn)行對(duì)應(yīng)或關(guān)聯(lián)的規(guī)則。
17、優(yōu)選地,所述a2中編譯proto文件的軟件為proto編譯器(protoc),所述proto編譯器(protoc)在工具中集成。
18、優(yōu)選地,所述grpc為遠(yuǎn)程過程調(diào)用協(xié)議;
19、proto為protocol?buffers文件的擴(kuò)展名;
20、desc為grpc描述文件;
21、serverservicedefinition為服務(wù)器服務(wù)定義。
22、優(yōu)選地,所述proto編譯器是protocol?buffers的編譯器,用于將.proto文件編譯成多種編程語(yǔ)言的代碼。
23、本發(fā)明的有益效果如下:
24、本發(fā)明通過采用先進(jìn)的框架和技術(shù),我們能夠顯著簡(jiǎn)化grpc服務(wù)的開發(fā)流程,并提升代碼復(fù)用性,這一過程中,最大的亮點(diǎn)在于無(wú)需手動(dòng)編寫繁瑣的grpc服務(wù)定義,這一改變不僅大幅減輕了開發(fā)者的負(fù)擔(dān),還使得現(xiàn)有的controller邏輯能夠直接復(fù)用,從而實(shí)現(xiàn)了資源的最大化利用和開發(fā)效率的提升,此外,該技術(shù)框架還展現(xiàn)出了極高的靈活性和可擴(kuò)展性,它提供了一種從web服務(wù)到grpc服務(wù)的快速轉(zhuǎn)換機(jī)制,使得開發(fā)者能夠輕松應(yīng)對(duì)業(yè)務(wù)需求的變化,隨著業(yè)務(wù)的發(fā)展,該框架還能夠支持后續(xù)的擴(kuò)展和優(yōu)化工作,確保系統(tǒng)的持續(xù)演進(jìn)和性能提升。
1.一種javaweb應(yīng)用到grpc服務(wù)的快速轉(zhuǎn)換方法,其特征在于:該方法的步驟為:
2.根據(jù)權(quán)利要求1所述的一種javaweb應(yīng)用到grpc服務(wù)的快速轉(zhuǎn)換方法,其特征在于:所述a1中的步驟分為:
3.根據(jù)權(quán)利要求1所述的一種javaweb應(yīng)用到grpc服務(wù)的快速轉(zhuǎn)換方法,其特征在于:所述a3中的步驟為:
4.根據(jù)權(quán)利要求1所述的一種javaweb應(yīng)用到grpc服務(wù)的快速轉(zhuǎn)換方法,其特征在于:自定義映射規(guī)則:用戶能夠借助配置文件或注解來(lái)自行定義controller到grpcservice的映射邏輯;
5.根據(jù)權(quán)利要求1所述的一種javaweb應(yīng)用到grpc服務(wù)的快速轉(zhuǎn)換方法,其特征在于:所述映射關(guān)系:指用戶定義的、將原始的controller及其方法與grpc?service進(jìn)行對(duì)應(yīng)或關(guān)聯(lián)的規(guī)則。
6.根據(jù)權(quán)利要求1所述的一種javaweb應(yīng)用到grpc服務(wù)的快速轉(zhuǎn)換方法,其特征在于:所述a2中編譯proto文件的軟件為proto編譯器(protoc),所述proto編譯器(protoc)在工具中集成。
7.根據(jù)權(quán)利要求1所述的一種javaweb應(yīng)用到grpc服務(wù)的快速轉(zhuǎn)換方法,其特征在于:所述grpc為遠(yuǎn)程過程調(diào)用協(xié)議;proto為protocol?buffers文件的擴(kuò)展名;desc為grpc描述文件;serverservicedefinition為服務(wù)器服務(wù)定義。
8.根據(jù)權(quán)利要求1所述的一種javaweb應(yīng)用到grpc服務(wù)的快速轉(zhuǎn)換方法,其特征在于:所述proto編譯器是protocol?buffers的編譯器,用于將.proto文件編譯成多種編程語(yǔ)言的代碼。