*前言:上兩篇文章中,我們發現在兩個項目dubbo-demo-provider
和dubbo-demo-consumer
中,接口DemoProviderService
代碼重複,pom.xml依賴代碼重複,下面我們嘗試將其統一。
①我們首先新建一個簡單maven項目dubbo-demo-api
,將接口DemoProviderService
複製到該項目中,再將之前兩個項目中的接口刪除,此時,之前兩個項目會報錯。
②我們在項目dubbo-demo-provider
和dubbo-demo-consumer
中添入依賴,刷新後,報錯信息應該會消失,此時完成了接口抽取的工作:
<dependency>
<groupId>com.java</groupId>
<artifactId>dubbo-demo-api</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
③我們再新建一個maven項目dubbo-demo-parent
,注意packaging選項選擇pom屬性,該項目只做依賴版本的統一,沒有實際功能:
在pom.xml中配置版本屬性:
<properties>
<dubbo-demo-api.version>0.0.1-SNAPSHOT</dubbo-demo-api.version>
<dubbo.version>2.6.0</dubbo.version>
<zkclient.version>0.10</zkclient.version>
<curator-framework.version>4.0.1</curator-framework.version>
<fastjson.version>1.2.46</fastjson.version>
<log4j.version>1.2.17</log4j.version>
<slf4j-api.version>1.7.25</slf4j-api.version>
<commons-lang3.version>3.4</commons-lang3.version>
<netty-all.version>4.0.35.Final</netty-all.version>
</properties>
再添入依賴:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.java</groupId>
<artifactId>dubbo-demo-api</artifactId>
<version>${dubbo-demo-api.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>${dubbo.version}</version>
</dependency>
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>${zkclient.version}</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
<version>${curator-framework.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${fastjson.version}</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j-api.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>${commons-lang3.version}</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>
<version>${netty-all.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
④在項目dubbo-demo-provider
和dubbo-demo-consumer
中添入父依賴後,所有依賴的版本信息應該會有黃色信息提示,將所有的版本信息全部刪除,即可完成依賴版本的統一:
<parent>
<groupId>com.java</groupId>
<artifactId>dubbo-demo-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
*最後,我們測試接口發佈和消費是否正常,依次啓動Zookeeper服務ZkServer.bat,Tomcat服務Startup.bat,項目dubbo-demo-provider
的ProviderTest
,dubbo-demo-consumer
的ConsumerTest
,訪問http://localhost:8080/,查看dubbo服務接口狀態是否爲正常,出現下圖即爲成功。