springboot中为何以继承的方式引入springBoot

1. 配置继承 vs 代码复用

  • 父项目

    • 配置继承:子模块通过继承父项目的配置,减少冗余代码。例如,父工程定义 <java.version>17</java.version>,子模块直接使用。

    • 非代码传递:父项目本身不会被打包或作为依赖传递到子模块中。

  • 依赖

    • 代码复用:依赖的代码会被打包到模块中(如 JAR 文件),直接影响最终构建产物。

    • 显式声明:每个模块需独立声明依赖及其版本,无继承关系。


2. 维护成本

  • 父项目

    • 集中管理:版本升级或配置变更只需修改父工程,所有子模块自动生效。

    • 一致性:避免多模块因配置差异导致构建失败或行为不一致。

  • 直接依赖

    • 重复配置:每个模块需单独声明依赖版本,版本冲突风险高(如模块 A 用 Spring 5,模块 B 用 Spring 6)。

    • 维护困难:升级依赖版本时需逐个修改所有模块,易遗漏或出错。


3. 典型场景

  • 父项目适用场景

    • 多模块项目中需要统一技术栈(如 Spring Boot 版本、JDK 版本)。

    • 企业级项目要求所有子模块遵循相同的构建规范。

  • 直接依赖适用场景

    • 单模块项目或简单应用。

    • 需要引入第三方库或工具(如 Guava、Jackson)


总结:

 作为父项目和作为依赖的区别

继承父工程的优势
- 依赖管理:可以在父工程中定义依赖的版本,子模块可以直接引用而不必指定版本号。
- 插件管理:可以在父工程中配置常用的插件及其版本,子模块可以直接使用这些配置。
- 属性设置:可以在父工程中定义一些通用的属性,如项目编码、Java 版本等。
- 统一配置:可以统一多个子模块的构建配置,确保一致性。
直接引入依赖的局限性(如果你不使用继承父工程的方式,而是通过直接引入依赖的方式来管理项目,那么你将失去上述的一些优势)
- 依赖版本管理:每个子模块都需要单独指定依赖的版本,这会导致大量的重复配置,并且难以维护。
- 插件配置:每个子模块都需要单独配置插件及其版本,无法共享父工程中的插件配置。
- 属性设置:每个子模块都需要单独设置通用的属性,如项目编码、Java 版本等。
- 构建配置:每个子模块的构建配置需要单独维护,难以保证一致性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值