现在我们来搭建一个springboot的多模块的项目,这样能够规范一些流程,也不至于整个项目看起来很臃肿。

本次我们使用四个模块,分别为core模块,application模块,application2模块,web模块;web模块需要集成其它三个模块去调用别的来进行逻辑验证和处理,而core模块单独,不引入其它模块,application和application2分别引入core模块;这样就可以出现web模块可以直接去调用core模块,application模块,application2模块;application和application2模块可以去调用core模块,但是application模块不能去调用application2模块,这样做的好处是,application模块可以来事务的增强,application2模块可以进行数据库的逻辑处理;当然,你也可以创建多个其它的模块。

废话不多说,我们现在开始,我重新新创建一个项目来,就叫demo2

java关于springBOOT多模块相互引用 springboot多模块项目的好处_spring

java关于springBOOT多模块相互引用 springboot多模块项目的好处_xml_02

java关于springBOOT多模块相互引用 springboot多模块项目的好处_xml_03

java关于springBOOT多模块相互引用 springboot多模块项目的好处_spring_04

java关于springBOOT多模块相互引用 springboot多模块项目的好处_spring_05

java关于springBOOT多模块相互引用 springboot多模块项目的好处_spring_06

这个是第一次创建出来的完整的结构,我们这里把这个src给删了,如下图所示:

java关于springBOOT多模块相互引用 springboot多模块项目的好处_xml_07

好了,接下来我们创建模块,我们先创建core模块

java关于springBOOT多模块相互引用 springboot多模块项目的好处_xml_08

java关于springBOOT多模块相互引用 springboot多模块项目的好处_spring_09

java关于springBOOT多模块相互引用 springboot多模块项目的好处_spring_10

java关于springBOOT多模块相互引用 springboot多模块项目的好处_xml_11

现在,我们的项目里面就有core模块了

java关于springBOOT多模块相互引用 springboot多模块项目的好处_spring_12

接下来我们需要对core模块进行操作,首先我们需要先打开demo2的pom文件

添加内容

java关于springBOOT多模块相互引用 springboot多模块项目的好处_xml_13

上面是在demo2的pom里面新增packaging和modules将core作为它的模块之一

好了,接下来我们需要操作一下core模块了,我们打开core模块的pom文件修改parent模块

将这一块改成

<parent>
    <groupId>com.example</groupId>
    <artifactId>demo2</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <relativePath>../pom.xml</relativePath>
</parent>

并把这个

<dependencies>里面的暂时删了

效果如下所示

java关于springBOOT多模块相互引用 springboot多模块项目的好处_多模块_14

接下来我们根据前面的方法创建application,application2,web模块,并根据前面的流程进行创建

创建好之后项目目录结构如下:

java关于springBOOT多模块相互引用 springboot多模块项目的好处_spring_15

项目主pom文件内容如下:

java关于springBOOT多模块相互引用 springboot多模块项目的好处_xml_16

core模块pom文件如下:

java关于springBOOT多模块相互引用 springboot多模块项目的好处_多模块_17

application模块pom文件:

java关于springBOOT多模块相互引用 springboot多模块项目的好处_spring_18

application2模块pom文件:

java关于springBOOT多模块相互引用 springboot多模块项目的好处_spring_19

web模块pom文件

java关于springBOOT多模块相互引用 springboot多模块项目的好处_xml_20

这样我们就多模块搭建好了,我们core,application,application2模块我们不需要启动类,所以我们可以把他们删了,就像这样

java关于springBOOT多模块相互引用 springboot多模块项目的好处_spring_21

对了,因为我们把junit包给去掉了,所以web模块下面的test把他给删了,接下来我们找到web的启动类进行启动了

java关于springBOOT多模块相互引用 springboot多模块项目的好处_xml_22

就可以实现启动了,多模块也就搭建完成了。

注意,如果不上test模块的块,在web模块的pom文件增加

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>

这样就可以了

好了,多模块就这样搭建完成了,有问题随时沟通