Dubbo(5)优化:接口抽取以及依赖版本统一

优化点:
1.在上面provider和consumer程序中都存在DemoProviderService接口了,两个项目中存在同样的东西,代码多余以及不方便管理;
正式的项目中存在很多的接口的,将统一的公共的抽取出来;
2.provider和consumer中存在很多相同的依赖;利用maven的继承统一的管理依赖和版本;
抽取公共的依赖;
 
 
1、项目结构变为了;
 
2.将公共的interface DemoProviderService放到dubbo-api项目里面了,consumer和provider项目都引用这个jar;
 
3.dubbo-parent的pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.cy</groupId>
  <artifactId>dubbo-parent</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>pom</packaging>
  
  <!-- 依赖版本管理 -->
  <properties>
      <dubbo-api.version>0.0.1-SNAPSHOT</dubbo-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.cy</groupId>
              <artifactId>dubbo-api</artifactId>
              <version>${dubbo-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>
  
  <modules>
       <module>../dubbo-api</module>
       <module>../dubbo-provider</module>
       <module>../dubbo-consumer</module>
  </modules>
  
</project>

 

4.dubbo-api的pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  
  <parent>
      <groupId>com.cy</groupId>
      <artifactId>dubbo-parent</artifactId>
      <version>0.0.1-SNAPSHOT</version>
  </parent>
  
  <artifactId>dubbo-api</artifactId>
  
</project>

5.dubbo-provider的pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  
  <parent>
      <groupId>com.cy</groupId>
      <artifactId>dubbo-parent</artifactId>
      <version>0.0.1-SNAPSHOT</version>
  </parent>
  
  <artifactId>dubbo-provider</artifactId>
  
  <dependencies>
          <dependency>
              <groupId>com.cy</groupId>
              <artifactId>dubbo-api</artifactId>
          </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>dubbo</artifactId>
        </dependency>
        <dependency>
            <groupId>com.101tec</groupId>
            <artifactId>zkclient</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-framework</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-all</artifactId>
        </dependency>
    </dependencies>
    
</project>

6.dubbo-consumer的pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
      <groupId>com.cy</groupId>
      <artifactId>dubbo-parent</artifactId>
      <version>0.0.1-SNAPSHOT</version>
  </parent>
  
  <artifactId>dubbo-consumer</artifactId>
  
  <dependencies>
          <dependency>
              <groupId>com.cy</groupId>
              <artifactId>dubbo-api</artifactId>
          </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>dubbo</artifactId>
        </dependency>
        <dependency>
            <groupId>com.101tec</groupId>
            <artifactId>zkclient</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-framework</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-all</artifactId>
        </dependency>
    </dependencies>
  
  
</project>

 

测试ok

 
 
 
posted on 2018-09-16 14:27  有点懒惰的大青年  阅读(957)  评论(0)    收藏  举报