引入公用模块
在前文中,笔者根据开发步骤整理了两份源代码文件,分别是 newbee-mall-cloud-dev-step01
和 newbee-mall-cloud-dev-step02
,本节的源代码是在 newbee-mall-cloud-dev-step02
工程的基础上改造的,将工程命名为 newbee-mall-cloud-dev-step03
。
随着工程中模块的增加,有些类重复出现在各个模块中。对于这些公用的类,大部分模块都会使用,但是在开发时不可能在每个模块中都保留这些重复的内容。因此,在实际开发时会创建一个公用模块用于存放这些公用的类,其他的业务模块将其作为依赖项引入。公用模块主要用于存放一些公用的类,如分页工具类、全局响应结果类、工具类等。
在工程中新增一个 newbee-mall-cloud-common
模块,并在 pom.xml
主文件中增加该模块的配置,代码如下:
<modules>
<module>newbee-mall-cloud-user-service</module>
<module>newbee-mall-cloud-gateway-admin</module>
<module>newbee-mall-cloud-common</module>
</modules>
xml
子节点 newbee-mall-cloud-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>
<groupId>ltd.newbee.cloud</groupId>
<artifactId>newbee-mall-cloud-common</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>newbee-mall-cloud-common</name>
<description>公用模块</description>
<parent>
<groupId>ltd.newbee.cloud</groupId>
<artifactId>newbee-mall-cloud</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
<version>1.5.14</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</dependency>
</dependencies>
</project>
xml
主要的配置项是模块名称、模块的打包方式。配置成功后,打开 newbee-mall-cloud-common
工程目录,新建 ltd.common.cloud.newbee
包,接着分别创建 dto
包、exception
包、util
包,并把 newbee-mall-cloud-step02
中用户微服务的一些公用类移动到公用模块中,编码完成后的目录结构如图 2-6 所示。
在后续实战过程中,还要创建其他微服务,使用公用模块就可以直接在 pom.xml
文件中引入该依赖配置。比如,当前工程中的用户微服务已经把公用的类都移动到公用模块中了,如果想要使用这些类,就可以在 pom.xml
文件中增加如下依赖配置:
<dependency>
<groupId>ltd.newbee.cloud</groupId>
<artifactId>newbee-mall-cloud-common</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
xml

Figure 1. 图2-6 公用模块的目录结构