美文网首页
《一》、springcloud微服务案例——构建工程模块

《一》、springcloud微服务案例——构建工程模块

作者: 神奇作手 | 来源:发表于2019-07-18 14:37 被阅读0次

    一、总体介绍

    使用 Maven 的分包分模块结构:
    1、一个 Project 带多个Module 子模块;
    2、MicroServiceCloud 父工程(Project)下初次带着3个子模块(Module)
    (1)、microservicecloud-api 封装的整体entity / 接口 / 公共配置等;
    (2)、microservicecloud-provider-dept-8001 微服务落地的服务提供者
    (3)、microservicecloud-provider-dept-80 微服务调用的客户端使用(端口80)

    二、本次使用的springcloud的版本

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-dependencies</artifactId>
        <version>Finchley.RELEASE</version>
        <type>pom</type>
        <scope>import</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-dependencies</artifactId>
        <version>2.0.2.RELEASE</version>
        <type>pom</type>
        <scope>import</scope>
    </dependency>
    

    springboot (2.0.2) 、 springcloud (Finchley.RELEASE)

    参考工程 servicespringcloud-v3:https://github.com/ll996960921/springcloud-01

    三、构建步骤

    1、构建 microservicecloud 整体父工程 Project

    新建工程 microservicecloud ,切记 Packageing 是 pom 模式
    主要是定义 pom 文件,将后续各个子模块公用的 jar 包统一提出来,类似一个抽象父类

    (1)、pom文件

    <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>cn.smilexl.springcloud</groupId>
        <artifactId>microservicecloud</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <packaging>pom</packaging>
    
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <maven.compiler.source>1.8</maven.compiler.source>
            <maven.compiler.target>1.8</maven.compiler.target>
            <junit.version>4.12</junit.version>
            <log4j.version>1.2.17</log4j.version>
            <lombok.version>1.16.18</lombok.version>
        </properties>
    
        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-dependencies</artifactId>
                    <version>Finchley.RELEASE</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
                <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-dependencies</artifactId>
                    <version>2.0.2.RELEASE</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
                <dependency>
                    <groupId>mysql</groupId>
                    <artifactId>mysql-connector-java</artifactId>
                    <version>5.0.4</version>
                </dependency>
                <dependency>
                    <groupId>com.alibaba</groupId>
                    <artifactId>druid</artifactId>
                    <version>1.0.31</version>
                </dependency>
                <dependency>
                    <groupId>org.mybatis.spring.boot</groupId>
                    <artifactId>mybatis-spring-boot-starter</artifactId>
                    <version>1.3.0</version>
                </dependency>
                <dependency>
                    <groupId>ch.qos.logback</groupId>
                    <artifactId>logback-core</artifactId>
                    <version>1.2.3</version>
                </dependency>
                <dependency>
                    <groupId>junit</groupId>
                    <artifactId>junit</artifactId>
                    <version>${junit.version}</version>
                    <scope>test</scope>
                </dependency>
                <dependency>
                    <groupId>log4j</groupId>
                    <artifactId>log4j</artifactId>
                    <version>${log4j.version}</version>
                </dependency>
            </dependencies>
        </dependencyManagement>
    
    </project>
    
    2、构建 microservicecloud-api 公共子模块 Module

    约定 > 配置 > 编码

    <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.smilexl.springcloud</groupId>
            <artifactId>servicespringcloud</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </parent>
    
        <!-- 当前Module我自己叫什么名字 -->
        <artifactId>servicespringcloud-api</artifactId>
    
        <!-- 当前Module需要用到的jar包,按自己需求添加,如果父类已经包含了,可以不用写版本号 -->
        <dependencies>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
            </dependency>
        </dependencies>
    </project>
    
    

    (1)、新建部门Entity配合lombok使用(Dept.java)

    package cn.smilexl.springcloud.entities;
    import java.io.Serializable;
    import lombok.Data;
    import lombok.NoArgsConstructor;
    import lombok.experimental.Accessors;
    /**
     * @ClassName: Dept
     * @Description: TODO 部门实体类
     */
    @SuppressWarnings("serial") //压制警告
    @NoArgsConstructor  //无参构造方法
    @Data  // setter、getter 方法
    @Accessors(chain=true) //链式结构
    public class Dept implements Serializable { //必须实现序列化   
        private Long deptno;     //主键
        private String dname;// 部门名称
        private String db_source; //来自哪个数据库,每个微服务对应一个数据库
    }
    

       通过 mvn clean install 给其它模块引用,达到通用目的;即,需要用的部门实体的话,不用每个工程都定义一份,直接引用本模块即可。

    相关文章

      网友评论

          本文标题:《一》、springcloud微服务案例——构建工程模块

          本文链接:https://www.haomeiwen.com/subject/pnuklctx.html