美文网首页
《一》、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