学习spring boot 的多模块开发形式。
1.项目结构搭建;
- 选择 spring init 创建第一个项目作为根项目(父项目),为了方便选择maven模式初始化该项目。包名应保持后续统一,所以不要乱取。
- 根项目构建好后,删除 @.mvn @src 文件夹,根目录下的其余文件可只保留.iml后缀文件与pom文件。
- (Web模块)右键根项目,新增module。同样选用spring init进行该模块的构建,该模块将作为启动类所在的主模块,包名与根项目统一。文件保留形式参考第一步。
- (Service模块)继续右键根项目,新增module。本次选用Maven 进行模块构建,因为maven会自动选择根项目作为当前模块的父模块。
- (Dao模块)右键新增。同第四步。
- 补充说明,模块数量与名称仅供参考,如上述三模块式结构很简单且后续易操作,根据个人情况可适当修改。
2.项目基础环境配置;
- 首先修改父项目的pom文件,完整移除plugin标签及内容,因为spring boot maven plugin在启动类所处的模块中才会用到,父模块不删除这部分的话 会报错。参考以下代码
<modelVersion>4.0.0</modelVersion>
<packaging>pom</packaging>
<modules>
<module>bg-service</module>
<module>bg-dao</module>
<module>bg-web</module>
</modules>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.7</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.graduation.design</groupId>
<artifactId>bs-bg</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>bs-bg</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencyManagement>
<dependencies>
</dependencies>
</dependencyManagement>
说明:
==============================================================================
<packaging>pom</packaging>
多模块结构的标识。
<modules>
项目模块整合。
<dependencyManagement>
管理子模块依赖。统一在父项目的此标签内引入会用到的依赖,之后在对应的子模块pom文件中再次引入要使用的依赖,才算真正将依赖引入到子模块中!!!==============================================================================
2.修改子模块的pom文件,参考以下代码
<parent>
<artifactId>bs-bg</artifactId>
<groupId>com.graduation.design</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>bg-service</artifactId>
<dependencies>
<dependency>
</dependency>
</dependencies>
3.处理模块间的依赖。父项目自然不用依赖子模块内的东西。子模块间的依赖遵循功能实现的流程。如本文章中的三个子模块(web、service、dao)。三者间的联系为 dao -> service ->web。实现参考以下代码。
service模块加入dao模块依赖
<dependency>
<groupId>com.graduation.design</groupId>
<artifactId>bg-dao</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
4.完成后刷新maven!
3. 项目模块介绍;
- web 主启动类所在的模块,controller、config、filter等文件也都在此模块内。
- service 接口及业务逻辑处理在该模块内实现。
- dao 与数据库交互的模块,mapper、entity等在此模块内。
版权声明:本文为Eve_Zero原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。