1. 这是什么?
(1)多模块(module)springboot项目。
(2)项目整体结构包含一个父模块(boot_multi_module)和四个子模块(boot_model、boot_controller、boot_service、boot_mapper),boot_model为其他三个子模块的公共模块,四个子模块都依赖父模块,版本控制由父模块统一管理。
(3)boot_mapper依赖boot_model;
boot_service依赖boot_mapper、间接依赖boot_model;
boot_controller依赖boot_service、间接依赖boot_mapper和boot_model;
2. 如何搭建?
2.1 先搭建父模块
(1) 首先创建一个Spring Initializr工程
(2)点击next,然后输入Group和Artifact
(3)点击next(什么都不选)
(4)修改路径或者使用默认路径,然后点击next,
(5)点击finish
(6)删除.mvn文件夹、src文件夹、.gitignore文件、HELP.md文件、mvnw文件、mvnw.cmd文件。删除后的效果如下图
(7)修改当前pom文件,在version下面增加
2.2 创建boot_module子模块
(1)工程名右键 -> new -> Module
(2)创建一个Spring Initializr工程,点击next
(3) 更改Group和Artifact,然后点击next
(4)选择需要的依赖,然后点击next
(5)选择项目路径,点击finish
(6)此时的项目结构如下
(7)将boot_multi_module和boot_model建立联系,声明boot_multi_module为boot_model的父项目。将boot_model的pom文件里的parent里的groupId、artifactId、version的值更改为boot_multi_module的pom文件中对应的值,其实也就是创建父工程中第二步里对应的值。
(8)然后在父工程(boot_multi_module)的pom里添加boot_model模块。如下图
(9)同样方法新建其他子模块(boot_controller、boot_service、boot_mapper),最终的结构如下图。父模块的pom添加子模块的module,各子模块的pom里的parent都引用父模块的groupId、artifactId、version
(10)建立各子模块间的关系。boot_mapper中添加boot_model的依赖;boot_service中添加boot_mapper的依赖;boot_controller添加boot_service的依赖。结构如下图
(11)收尾,整理项目总体结构。
一、由于项目主入口为boot_controller的BootControllerApplication,所以只保留boot_controller的BootControllerApplication,删除boot_service中的BootServiceApplication、boot_mapper中的BootMapperApplication、boot_model中的BootModelApplication.删除后如下图
二、至于各模块的resource文件夹,一般service和model不需要写配置,所以可以删掉boot_service和boot_model中的resource文件夹;如果用mybatis,需要保留boot_mapper中的resource文件夹,否则也删掉;boot_controller要保留resource文件夹,因为要写application。至此,多模块springboot项目搭建完毕。
3. 测试
(1)编写model
(2)编写service
(3)编写controller
(4)修改BootControllerApplication,更改包扫描路径
(5)启动成功,端口为11111
4. 完整代码:https://github.com/bnuzwhy/boot_multi_module