为什么Spring Boot项目引入依赖的时候可以不指定依赖的版本号

简介: 不知道大家在Spring Boot 项目中引入依赖的时候有没有注意到一个问题:引入的依赖不指定版本号,比如下面这样,但是也可以下载到对应的jar 包。

不知道大家在Spring Boot 项目中引入依赖的时候有没有注意到一个问题:引入的依赖不指定版本号,比如下面这样,但是也可以下载到对应的jar 包。

<!-- 添加对JDBC 的支持 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>

其实在Spring Boot 项目下的pom.xml文件中通常都会有一个<parent>标签,用来指定继承的父pom,如下:

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.10.RELEASE</version>
        <relativePath/>
    </parent>

点进去后会发现spring-boot-starter-parent也继承自一个pom,如下:

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-dependencies</artifactId>
        <version>1.5.10.RELEASE</version>
        <relativePath>../../spring-boot-dependencies</relativePath>
    </parent>

再点进去就可以看到结果了,顶级的pom文件的坐标如下,通过<artifactId>标签我们应该知道这个pom文件时用来管理依赖版本号的。

<groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-dependencies</artifactId>
    <version>1.5.10.RELEASE</version>
    <packaging>pom</packaging>

在这个pom.xml中定义了很多的<propertie>标签用来管理引入依赖和插件的版本。

2b2797734063236ccf71565c8df3b9c1_70.png

在引入依赖的时候,即使你不指定依赖的版本,Spring Boot 也会通过Maven 的继承关系,引入依赖的版本,从而完成版本的统一。

6ac9d2f3df874a094b07011bd391484a_70.png

当然你也可以不使用Maven继承的依赖版本,只需要在引入依赖的时候指定具体的依赖版本即可。


目录
相关文章
|
1月前
|
XML 缓存 Java
Spring源码之 Bean 的循环依赖
循环依赖是 Spring 中经典问题之一,那么到底什么是循环依赖?简单说就是对象之间相互引用, 如下图所示: 代码层面上很好理解,在 bean 创建过程中 class A 和 class B 又经历了怎样的过程呢? 可以看出形成了一个闭环,如果想解决这个问题,那么在属性填充时要保证不二次创建 A对象 的步骤,也就是必须保证从容器中能够直接获取到 B。 一、复现循环依赖问题 Spring 中默认允许循环依赖的存在,但在 Spring Boot 2.6.x 版本开始默认禁用了循环依赖 1. 基于xml复现循环依赖 定义实体 Bean java复制代码public class A {
|
1月前
|
Java Spring
【编程笔记】在 Spring 项目中使用 RestTemplate 发送网络请求
【编程笔记】在 Spring 项目中使用 RestTemplate 发送网络请求
94 0
|
1月前
|
SpringCloudAlibaba Java 持续交付
【构建一套Spring Cloud项目的大概步骤】&【Springcloud Alibaba微服务分布式架构学习资料】
【构建一套Spring Cloud项目的大概步骤】&【Springcloud Alibaba微服务分布式架构学习资料】
169 0
|
2月前
|
存储 缓存 Java
明知面试要问spring循环依赖,很多人还是搞不懂!
Spring中的循环依赖一直是Spring中一个很重要的话题,一方面是因为源码中为了解决循环依赖做了很多处理,另外一方面是因为面试的时候,如果问到Spring中比较高阶的问题,那么循环依赖必定逃不掉。如果你回答得好,那么这就是你的必杀技,反正,那就是面试官的必杀技,这也是取这个标题的原因,当然,本文的目的是为了让你在之后的所有面试中能多一个必杀技,专门用来绝杀面试官!
33 0
|
4天前
|
Java Maven Docker
0.07 秒启动一个 SpringBoot 项目!Spring Native 很强!!
0.07 秒启动一个 SpringBoot 项目!Spring Native 很强!!
15 2
|
11天前
|
存储 缓存 Java
Spring解决循环依赖
Spring解决循环依赖
|
18天前
|
JSON 前端开发 Java
统一异常处理:让Spring Boot项目异常更优雅
统一异常处理:让Spring Boot项目异常更优雅
26 1
|
28天前
|
缓存 算法 Java
开发必懂的Spring循环依赖图解 Spring 循环依赖
开发必懂的Spring循环依赖图解 Spring 循环依赖
21 1
|
1月前
|
缓存 算法 Java
Spring解决循环依赖
Spring解决循环依赖
19 0
|
1月前
|
缓存 NoSQL Java
spring cache整合redis实现springboot项目中的缓存功能
spring cache整合redis实现springboot项目中的缓存功能
46 1