⬅️ 上一篇: springboot系列一: springboot初步入门
🎉 欢迎来到 springboot系列二: springboot依赖管理 🎉
在本篇文章中,我们将探讨如何管理 Spring Boot 项目的依赖。通过理解这些依赖管理机制,您可以更加轻松地配置和管理 Spring Boot 应用程序的各种库和插件。
🔧 本篇需要用到的项目: quickstart项目
依赖管理
什么是依赖管理
1.spring-boot-starter-parent 还有父项目, 声明了开发中常用的版本号.
2.并且进行 自动版本仲裁, 即如果程序员没有指定某个依赖 jar 的版本, 则以父项目指定的版本为准.
修改自动仲裁/默认版本号
1.需求说明: 将SpringBoot mysql驱动修改成 5.1.49
2.查看spring-boot-dependencies.pom里面规定的当前依赖 的版本 的对应的 key, 这里是 mysql.version
3.修改quickstart/pom.xml
, 重写配置, 当更新Maven
时, 就依赖到新的mysql
驱动. 一句话: 父项目不能动, 两种方案均是修改本项目的pom文件.
两种方案
方式1
<dependencies>
<!--我们自己指定mysql/驱动版本, 即修改版本仲裁
1.方式1: 显示地导入mysql依赖, 并明确地指定version
2.方式2: 在自己的pom.xml文件, 在<properties> 中指定mysql的key
形如:
<properties>
<mysql.version>5.1.49</mysql.version>
</properties>
3.为什么可以达到修改版本仲裁: 根据依赖就近优先原则.
-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.49</version>
</dependency>
</dependencies>
方式2 在自己的pom.xml文件, 在<properties> 节点中指定mysql的key
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!--这里我们可以指定mysql.version-->
<mysql.version>5.1.49</mysql.version>
</properties>
<dependencies>
<!--我们自己指定mysql/驱动版本, 即修改版本仲裁
1.方式1: 显示地导入mysql依赖, 并明确地指定version
2.方式2: 在自己的pom.xml文件, 在<properties> 中指定mysql的key
形如:
<properties>
<mysql.version>5.1.49</mysql.version>
</properties>
3.为什么可以达到修改版本仲裁: 根据依赖就近优先原则.
-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies>
starter场景启动器
starter场景启动器基本介绍
1.开发中我们引入相关场景的starter, 这个场景中所有的相关依赖都引入进来了, 比如我们做web开发引入了spring-boot-starter-web, 该starter将导入与web开发相关的所有包.
2.依赖树: 可以看到 spring-boot-starter-web, 帮我们导入了spring-web, spring-webmvc开发模块, 还导入了tomcat的场景启动器spring-boot-starter-tomcat, spring-boot-starter-json场景, 这些场景下面又引出了一大堆相关的包, 这些依赖项可以快速启动和运行一个项目, 提高开发效率.
3.所有场景启动器最基本的依赖就是spring-boot-starter, 前面的依赖树分析可以看到, 这个依赖也就是SpringBoot自动配置的核心依赖
官方提供的starter
介绍:
1.在开发中我们经常会用到spring-boot-starter-xxx, 比如spring-boot-starter-web, 该场景是用作web开发, 也就是说xxx是某种开发场景.
2.我们只需要引入starter, 这个场景的所有常规需要的依赖我们都自动引入.
3.SpringBoot2支持的所有场景如下:
第三方starter
1.SpringBoot也支持第三方starter
2.第三方starter不会从spring-boot开始, 因为这是官方spring-boot保留的命名方式. 第三方启动程序通常以项目名称开头. 例如, 名为 thirdpartyproject 的第三方启动程序项目通常被命名为 thirdpartyproject-spring-boot-starter.
3.也就是说: xxx-spring-boot-starter是第三方为我们提供的简化开发的场景启动器.
🔜 下一篇预告: springboot系列三: sprintboot自动配置
📚 目录导航 📚
- springboot系列一: springboot初步入门
- springboot系列二: sprintboot依赖管理
- springboot系列三: sprintboot自动配置
- springboot系列四: sprintboot容器功能
- springboot系列五: springboot底层机制实现 上
- springboot系列六: springboot底层机制实现 下
- springboot系列七: Lombok注解,Spring Initializr,yaml语法
…
💬 读者互动 💬
在依赖管理过程中,您遇到过哪些问题或有何建议?欢迎在评论区留言,让我们一起讨论吧!😊