为什么导入 starter-web 后所有相关依赖都自动导入?
- 按场景导入:开发什么场景,就导入什么场景启动器
- Maven 依赖传递:A → B → C,A 就拥有 B 和 C 的所有依赖
- 导入场景启动器后,自动把这个场景的所有核心依赖全部引入
为什么版本号都不用写?
- 每个 Boot 项目都有一个父项目
spring-boot-starter-parent - 它的父项目是
spring-boot-dependencies - 父项目作为 版本仲裁中心,把所有常见 jar 的依赖版本都声明好了
- 例如:
mysql-connector-j
自定义版本号
利用 Maven 的 就近原则:
- 在当前项目
properties标签中声明父项目用的版本属性 key - 直接在导入依赖时声明版本
第三方 jar 包
Boot 父项目没有管理的需要自行声明版本:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.16</version>
</dependency>