<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          項(xiàng)目骨架,開整!

          共 2746字,需瀏覽 6分鐘

           ·

          2022-05-30 20:55

          上一篇環(huán)境搭建好之后,我們的項(xiàng)目終于要開工了。開工前需要給項(xiàng)目取個高大上的名字,經(jīng)過我反復(fù)思考(這也許是拖更的重要原因)最終確定為:easy-rpc

          看起來很隨意,其實(shí)蘊(yùn)含了豐富的含義:easy 代表這個項(xiàng)目上手很容易,大家很容易學(xué)會;easy 也代表這個項(xiàng)目就是簡單造輪子用的,不可用于生產(chǎn)環(huán)境,出問題別找我,hhhhhhhhh

          設(shè)計項(xiàng)目結(jié)構(gòu)

          在實(shí)際工作中很少會采用單一的 Maven 工程結(jié)構(gòu),尤其是遇到業(yè)務(wù)復(fù)雜的項(xiàng)目幾乎都是采用多 module 結(jié)構(gòu),這樣不光層次清晰,單個 module還可以發(fā)布為三方件供其他項(xiàng)目依賴復(fù)用。

          如果你對設(shè)計項(xiàng)目結(jié)構(gòu)還是沒有很好的思路,有一個很簡單的辦法,去 Github 下載開源的框架源碼,學(xué)習(xí)借鑒一下。

          我們這次的項(xiàng)目是動手?jǐn)]一個 RPC 框架,而國內(nèi)比較流行的框架有阿里的 Dubbo,自然而然想到參考一下它的結(jié)構(gòu),下面的截圖是 Dubbo 框架的源碼結(jié)構(gòu):

          Dubbo 框架源碼結(jié)構(gòu)

          可以看出,一個父模塊下面有個多個子模塊,通過命名也非常容易看出每個模塊的功能。

          我們的 RPC 項(xiàng)目只需要實(shí)現(xiàn)最基礎(chǔ)的功能,肯定不能跟成熟的 Dubbo 框架比,所以結(jié)構(gòu)上也必要那么復(fù)雜。下面設(shè)計一下 easy-rpc 項(xiàng)目結(jié)構(gòu):

          easy-rpc
          ├──?easy-rpc-spring-boot-starter
          ├──?easy-rpc-example
          │???├──?easy-rpc-example-consumer
          │???├──?easy-rpc-example-provider

          父模塊下面有兩個子模塊:

          easy-rpc-spring-boot-starter 是核心框架代碼,easy-rpc 所有的功能代碼都會放在這里面。為了便于后續(xù)集成到項(xiàng)目中,我特地將 easy-rpc 框架包裝成了 spring-boot-starter,用過 spring-boot 的同學(xué)應(yīng)該都知道,spring 官方提供了眾多 spring-boot-starter-xxx,starter 就是將相關(guān)的依賴和配置放在一塊,便于開發(fā)者引用。spring 允許開發(fā)者自定義各種 starter,但是在命名上有一些建議:xxx-spring-boot-starter。

          另外一個模塊 easy-rpc-example是用來測試框架用的,這里面會寫一些樣例代碼,便于大家更快上手使用easy-rpc框架。

          接下來就帶領(lǐng)大家一步步創(chuàng)建項(xiàng)目骨架結(jié)構(gòu)。

          搭建項(xiàng)目骨架

          創(chuàng)建父模塊 Maven 工程

          使用 IDEA 新建一個空的 Maven 工程,后面會創(chuàng)建幾個子Module。

          操作路徑:「New Project」-> 「Maven」

          新建 Maven 工程

          注意不需要選擇任何 Maven 模板,點(diǎn)擊「Next」后填寫工程名稱和 Maven 坐標(biāo)(GAV)。

          點(diǎn)擊「Finish」后會生成一個src目錄,直接刪除掉這個目錄。

          創(chuàng)建子模塊 easy-rpc-spring-boot-starter

          在項(xiàng)目根目錄上右鍵新建子模塊。

          操作路徑:「new」-> 「Module」-> 「Maven」

          同樣與父模塊一樣,填寫子模塊的工程名和 Maven 坐標(biāo)(GAV)。

          這里需要注意的一點(diǎn)是:Parent 要選擇上父模塊。

          創(chuàng)建子模塊 easy-rpc-example

          與上面的步驟類似,繼續(xù)創(chuàng)建子模塊。


          easy-rpc-example創(chuàng)建完之后會生成src目錄,這里同樣把目錄刪除。接下來會創(chuàng)建兩個子模塊。


          創(chuàng)建子模塊 easy-rpc-example-provider

          easy-rpc-example-provider 是模擬服務(wù)提供者,對外提供接口服務(wù)。后續(xù)會集成 easy-rpc 框架寫一個樣例。

          這里注意一下,Parent 選擇 easy-rpc-example。


          創(chuàng)建子模塊 easy-rpc-example-consumer

          easy-rpc-example-consumer 是模擬服務(wù)消費(fèi)者,用于消費(fèi)接口。

          這里注意一下,這里 Parent 同樣是選擇 easy-rpc-example。


          項(xiàng)目骨架結(jié)構(gòu)展示

          至此 easy-rpc項(xiàng)目基本骨架搭建完畢,我們在 IDEA 中看下效果:

          以樹形展示如下:

          └──?easy-rpc
          ????├──?easy-rpc-example??//?集成?rpc?框架的樣例
          ????│???├──?easy-rpc-example-consumer?//?模擬消費(fèi)者
          ????│???│???├──?pom.xml
          ????│???│???└──?src
          ????│???│???????├──?main
          ????│???│???????│???├──?java
          ????│???│???????│???└──?resources
          ????│???│???????└──?test
          ????│???│???????????└──?java
          ????│???├──?easy-rpc-example-provider?//?模擬提供者
          ????│???│???├──?pom.xml
          ????│???│???└──?src
          ????│???│???????├──?main
          ????│???│???????│???├──?java
          ????│???│???????│???└──?resources
          ????│???│???????└──?test
          ????│???│???????????└──?java
          ????│???└──?pom.xml
          ????├──?easy-rpc-spring-boot-starter?//?easy-rpc?框架核心代碼,也是本項(xiàng)目的重點(diǎn)
          ????│???├──?pom.xml
          ????│???└──?src
          ????│???????├──?main
          ????│???????│???├──?java
          ????│???????│???└──?resources
          ????│???????└──?test
          ????│???????????└──?java
          ????└──?pom.xml

          小結(jié)

          采用多模塊方式搭建項(xiàng)目其實(shí)是為了帶領(lǐng)大家了解代碼分層架構(gòu)設(shè)計的思想,代碼分層架構(gòu)設(shè)計主要是為了實(shí)現(xiàn)責(zé)任分離、解耦、組件復(fù)用和標(biāo)準(zhǔn)制定。現(xiàn)在你可能有點(diǎn)感覺了吧。

          -- END --

          項(xiàng)目全部搭建好了,下期開始擼代碼了。如果你對這個項(xiàng)目還不是很熟悉,推薦你把前面的內(nèi)容補(bǔ)一下《《從零開始造一個 RPC 輪子》

          還可以學(xué)習(xí):

          好了,今天的技術(shù)文就到這里了。我是雷小帥,一個死磕技術(shù)的理工男,如果本文對你有幫助,麻煩點(diǎn)贊、分享、在看支持一下,非常感謝~ 下期見

          瀏覽 64
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日屄的视频 | 久久久极品 | 日本免费在线黄色视频 | 骚逼网址 | 亚洲黄色性爱 |