4、幽络源微服务项目实战:后端公共模块创建与引入多租户模块

4、幽络源微服务项目实战:后端公共模块创建与引入多租户模块

前言

上节我们将电网巡检系统的前端vue2项目创建、配置,并构建了最基础的多租户界面,本节来继续构建后端的公共模块、多租户模块,并将公共模块引入到多租户模块中。

创建公共模块和多租户模块

在back父工程下创建两个Module,和创建父工程是一样的,公共模块我们命名为common,多租户模块命名为tenant,如图

fe055820-f658-4f46-88f4-ca706cc9bbb2

为父工程添加子模块(重要)

在父工程back的pom.xml中添加如下代码,表示将common和tenant作为其子模块

<modules>
    <module>common</module>
    <module>tenant</module>
</modules>

完整如下

<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <!--父工程自身信息-->
    <groupId>com</groupId>
    <artifactId>back</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <!--属性统一定义管理-->
    <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>Hoxton.SR12</spring-cloud.version>
        <spring-cloud-alibaba.version>2.2.10-RC1</spring-cloud-alibaba.version>
    </properties>

    <!--继承 Spring Boot 的父工程-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.12.RELEASE</version>
    </parent>

    <!--打包类型,作用: 声明当前项目是一个 父工程,不生成具体的 JAR/WAR,仅用于管理子模块或依赖。-->
    <packaging>pom</packaging>

    <!--依赖管理,作用: 统一管理 Spring Cloud 和 Spring Cloud Alibaba 的依赖版本。-->
    <!--scope=import 与 type=pom: 表示引入其他 POM 文件中定义的依赖管理(类似合并依赖版本列表)。-->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring-cloud-alibaba.version}</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <modules>
        <module>common</module>
        <module>tenant</module>
    </modules>
</project>

修改公共模块和多租户模块

修改公共模块common的pom.xml为如下,引入基本的依赖

<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>
    <artifactId>common</artifactId>

    <!--指定父工程-->
    <parent>
        <groupId>com</groupId>
        <artifactId>back</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.1</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
    </dependencies>

</project>

再修改多租户模块tenant的pom.xml为如下,这里可以看到,tenant只是引入了common

<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>
    <artifactId>tenant</artifactId>

    <parent>
        <groupId>com</groupId>
        <artifactId>back</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>com</groupId>
            <artifactId>common</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
    </dependencies>

</project>

记得打包

将common模块利用maven的install进行下载到本地,然后对tenant模块进行package打包,这才算真正的将common模块一并打包到了tenant模块。

源码

https://pan.quark.cn/s/e8b565cb410e

结语

如上为幽络源的4、幽络源微服务项目实战:后端公共模块创建与引入多租户模块教程,如有疑问或对微服务感兴趣可加入我们的QQ群询问与交流:307531422

THE END
喜欢就支持一下吧
分享