SpringBoot父工程spring-boot-starter-parent
一、什么是SpringBoot父工程?
spring-boot-starter-parent 是SpringBoot官方提供的统一版本管理父工程,所有SpringBoot项目都默认继承它,是整个项目的版本与配置总管家。
我们新建SpringBoot项目时,pom.xml会自动生成以下代码:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.18</version>
<relativePath/>
</parent>
核心定位:只管控版本和配置,不参与业务代码,不导入冗余jar包
二、父工程五大核心作用(重点)
1. 全局统一依赖版本,彻底解决版本冲突(最核心)
传统SSM开发中,我们需要手动导入每一个jar包、手动匹配兼容版本,极其容易出现版本不匹配、jar包冲突、类找不到等报错。
而SpringBoot父工程内部维护了一份全套组件兼容版本清单,涵盖Spring、SpringMVC、MyBatis、MySQL、Redis、Jackson、日志等所有常用框架。
带来的便利:
-
子项目引入所有 Starter、第三方依赖,无需写 version 版本号
-
框架自动匹配当前Boot版本的兼容依赖,从根源杜绝版本冲突
示例(无需指定版本):
<!-- 无需写version,父工程自动适配版本 -->
<dependency>
<groupId>spring-boot-starter-web</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
2. 按需管理依赖,不冗余、不臃肿
很多新手有误区:父工程是不是会导入所有jar包?
答案:不会!
父工程通过 Maven 的 dependencyManagement 标签管理依赖:
-
只锁定版本,不会自动导入任何jar包
-
子项目需要什么依赖,手动引入即可,按需加载
-
完美避免项目依赖臃肿、冗余包过多的问题
3. 内置标准化Maven配置,简化pom文件
父工程提前封装了全套通用Maven配置,子项目直接继承,无需重复手写配置,极大简化开发!
默认自带配置:
-
统一编码:项目全局默认UTF-8,彻底解决编译、资源文件中文乱码
-
统一JDK版本:根据Boot版本自动适配对应JDK编译环境
-
资源文件解析规则:自动识别 src/main/resources、src/test/resources 配置文件,支持yml/properties变量替换
-
内置打包插件:自带
spring-boot-maven-plugin,无需手动配置,一键打包生成可执行jar包 -
统一测试环境:默认锁定JUnit、Mockito等测试组件版本
4. 统一管控Maven插件版本
Maven编译插件、资源插件、打包插件等,经常会因版本不兼容导致编译失败、打包报错。
父工程统一锁定了所有常用Maven插件的兼容版本,子项目使用插件无需指定版本,零配置、零报错。
5. 全局统一版本管控,升级极其方便
父工程定义了大量全局属性,如${spring.version}、${mysql.version}、${mybatis.version}。
-
单独升级某个组件:子pom重写对应属性即可全局生效
-
整体升级SpringBoot版本:仅修改父工程version一行代码,所有依赖、插件版本同步更新
极大提升项目维护效率,适配迭代升级!
三、高频面试区分:父工程 VS Starter启动器
很多面试会问两者区别,记住一句话即可:
-
spring-boot-starter-parent(父工程):负责 版本管控、Maven标准化配置,不导入业务jar
-
spring-boot-starter-xxx(Starter启动器):负责 导入对应场景的全套业务jar包
两者配合:父工程管版本,Starter管依赖导入,实现SpringBoot零配置极简开发。
四、全文总结(精华)
SpringBoot父工程的核心价值可以总结为4个关键词:锁版本、省代码、标准化、易维护
-
锁定所有依赖、插件版本,从根源解决版本冲突;
-
无需手动写版本号、无需重复配置Maven,简化pom配置;
-
统一编码、JDK、打包、测试等全套项目标准;
-
全局统一管控,项目升级、维护成本大幅降低。
更多推荐


所有评论(0)