前言
上节我们将电网巡检系统的前端vue2项目创建、配置,并构建了最基础的多租户界面,本节来继续构建后端的公共模块、多租户模块,并将公共模块引入到多租户模块中。
创建公共模块和多租户模块
在back父工程下创建两个Module,和创建父工程是一样的,公共模块我们命名为common,多租户模块命名为tenant,如图

为父工程添加子模块(重要)
在父工程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

