4、幽络源微服务项目实战:后端公共模块创建与引入多租户模块
前言
上节我们将电网巡检系统的前端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.baidu.com/s/1payZ-Pae8jhc3sGbFO_GJw?pwd=fvyb