新手入门Spring Boot多模块项目的关键是理清职责划分、依赖关系和配置分层,按四步搭建:①创建仅含pom.xml的父工程并设packaging为pom;②按职责新建common、api、service、web子模块;③精准配置各模块Maven依赖与继承关系;④在web模块启动应用并验证访问成功。

新手入门 Spring Boot 多模块项目,关键不是一步到位写业务,而是理清“谁管什么、谁依赖谁、配置怎么分层”。只要结构对、依赖清、启动点准,后面扩展就顺。下面按真实开发节奏讲清楚核心四步。
先搭干净的父工程(不写代码,只管结构)
用 IDEA 新建项目时选 Spring Initializr,填好 GroupId(如 com.example)、ArtifactId(如 myapp-parent),JDK 选 17(Spring Boot 3.x 要求)或 1.8(2.x)。创建完立刻删掉 src 文件夹、mvnw 等无关文件,只留 pom.xml。这个 pom 必须设为 ,并声明子模块名(如 、),同时用 统一管理各模块共用依赖的版本,比如 Spring Boot 版本、MyBatis Plus 版本等。
再建功能明确的子模块(按职责切分)
右键父项目 → New → Module,选 Maven(不要选 Spring Initializr!否则会多出 src 和 starter 依赖,干扰结构)。推荐起名直白:
- myapp-common:放工具类、统一返回 Result、全局异常处理、常量等,不依赖其他子模块;
- myapp-api:定义接口 DTO、Feign Client、Swagger 配置等,只依赖 common;
- myapp-service:写 Service、Mapper、业务逻辑,依赖 common 和 api;
- myapp-web:唯一含 @SpringBootApplication 的模块,负责启动、Controller、静态资源,依赖 service 和 common。
重点配好模块间依赖(Maven 是核心)
每个子模块的 pom.xml 中, 指向父工程, 与父工程一致, 用 ${project.version} 继承。依赖写法要精准:
- common 模块只加基础依赖,如 spring-boot-starter、lombok;
- web 模块必须加 spring-boot-starter-web,并显式引入 ;
- service 模块引入 myapp-common 和 myapp-api;
- 所有子模块都不再重复声明 Spring Boot parent,避免版本冲突。
最后验证启动和访问(跑通才算入门成功)
在 myapp-web 的 src/main/java 下新建包 com.example.web,创建启动类 MyAppWebApplication.java,加上 @SpringBootApplication。再建 controller 包,写一个简单 @RestController 返回字符串。确保 IDEA 右下角 Maven 工具栏已识别全部模块,点击 Reimport 刷新一次。运行启动类,看到控制台输出 Tomcat started on port(s): 8080,浏览器访问 http://localhost:8080/hello 能返回结果,就说明整个链路通了。











