一、一句话解释
Spring Boot 多模块 = 把一个大项目拆分成多个独立子模块(maven module),统一管理依赖、分工开发,最终打包运行其中一个启动模块,其他模块作为依赖被引用。 本质是 Maven 多工程聚合,不是 Spring Boot 独有的特性,只是 SpringBoot 项目最常用这种架构。
对比:单模块 → 所有代码写在一个项目里;多模块 → 拆成多个子工程,各司其职。
二、最常用分层结构
parent-project 【父工程,打包方式 pom,统一管理版本、依赖】
├── common 公共模块:工具类、常量、统一返回、异常、工具包(不启动,jar)
├── entity 实体模块:POJO、DTO、VO、数据库实体(jar)
├── mapper 数据访问:MyBatis Mapper、DAO(jar)
├── service 业务逻辑:接口 + 业务实现(jar)
└── admin-api 启动模块:Controller、SpringBoot启动类,对外提供接口(可打包jar运行)
依赖流向:
api -> service -> mapper -> entity/common只有 api 模块有 @SpringBootApplication 启动类,其他都是普通 jar 包,不能独立启动
三、核心两个角色
- 父工程(pom 类型)
- packaging =
pom - 定义
<modules>包含所有子模块 - 使用
dependencyManagement统一锁定所有依赖版本(避免版本冲突) - 子模块继承父工程,不用重复写版本号
- packaging =
- 子模块(jar 类型)
- 继承父 pom
- 按需引入其他子模块作为依赖
- 分为:公共基础模块、业务模块、启动入口模块
四、多模块好处
- 职责拆分,代码解耦:实体、工具、业务、控制器分离,便于维护
- 依赖复用:common、entity 可以被多个服务复用
- 分工协作:不同开发负责不同模块,减少代码冲突
- 统一版本管理:父工程管控所有 jar 版本,防止版本混乱
- 方便微服务演进:后续某个模块独立拆成微服务改动更小
全部评论(0)
还没有任何评论哟~