前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >面试题49:简单介绍一下,SpringBoot如何管理项目中的依赖?

面试题49:简单介绍一下,SpringBoot如何管理项目中的依赖?

作者头像
爪哇缪斯
发布于 2023-05-09 13:45:02
发布于 2023-05-09 13:45:02
36800
代码可运行
举报
文章被收录于专栏:爪哇缪斯爪哇缪斯
运行总次数:0
代码可运行

在之前我们做Spring项目的时候,需要面对的就是引入大量的第三方包,而包和包之前的版本依赖,一直也是让我们非常头疼的问题之一。依赖越多越复杂,版本管理的问题就会愈加突显出来。

那么SpringBoot的诞生,基于Spring在它的上层为我们做好了默认的一整套依赖包的版本管理。也就是说,如果我们没有必须要指定某一版本的强性需求的话,只需要关注采用哪个依赖,而不必在意版本了。

下面我们就来介绍一下SpringBoot的依赖管理。当我们通过Spring Initializer创建好一个基于SpringBoot的脚手架项目时,我们发现,在pom.xml文件中,有一个<parent>的标签,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.5.5</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

点击artifactId标签中的spring-boot-starter-parent,会跳转到spring-boot-starter-parent-2.5.1.pom,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-dependencies</artifactId>
    <version>2.5.1</version>
  </parent>
  <artifactId>spring-boot-starter-parent</artifactId>
  <packaging>pom</packaging>
  <name>spring-boot-starter-parent</name>
  ... ...

在spring-boot-starter-parent的pom中,父类标签指定的是spring-boot-dependencies,我们再次点击跳转进去。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
... 
  <properties>
    <activemq.version>5.16.2</activemq.version>
    <antlr2.version>2.7.7</antlr2.version>
    <appengine-sdk.version>1.9.89</appengine-sdk.version>
    <artemis.version>2.17.0</artemis.version>
    <aspectj.version>1.9.6</aspectj.version>
    <assertj.version>3.19.0</assertj.version>
    ...
  </properties>
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>activemq-amqp</artifactId>
        <version>${activemq.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>activemq-blueprint</artifactId>
        <version>${activemq.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>activemq-broker</artifactId>
        <version>${activemq.version}</version>
      </dependency>
      ...
    </dependencies>
   </dependencyManagement>

我们发现,在spring-boot-dependencies的pom中,管理了将近200个第三方包依赖,并且也维护好了对应的版本。那么,我们就可以非常方便的针对自己的需要,在其中做选择使用,而不用担心有版本冲突的问题了。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 爪哇缪斯 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
快速学习-SpringBoot原理分析
按住Ctrl点击pom.xml中的spring-boot-starter-parent,跳转到了spring-boot-starter-parent的pom.xml,xml配置如下(只摘抄了部分重点配置):
cwl_java
2020/04/01
7090
快速学习-SpringBoot原理分析
springboot详细讲解_Springboot项目
按住Ctrl点击pom.xml中的spring-boot-starter-dependencies,跳转到了spring-boot-starter-dependencies的pom.xml,xml配置如下(只摘抄了部分重点配置):
全栈程序员站长
2022/11/09
1.5K0
springboot详细讲解_Springboot项目
SpringBoot2-[SpringBoot优缺点、微服务理解、版本仲裁]
因为所有的SpringBoot项目的maven的pom.xml都继承自spring-boot-starter-parent
全栈程序员站长
2022/11/09
8030
SpringBoot2-[SpringBoot优缺点、微服务理解、版本仲裁]
SpringBoot原理?属性配置?在这里
找到pom.xml中的spring-boot-starter-parent,Crtl+点击跳转到了spring-boot-starter-parent的pom.xml,xml配置如下(部分摘录):
程序员的时光001
2020/07/30
4910
SpringBoot原理?属性配置?在这里
SpringBoot 笔记 ( 一 ):启动流程
SpringBoot 笔记(一): 启动流程 1. 配置开发环境 1. 创建 Maven 项目 然后我们首先在项目里面加上编译环境,防止每一次更新 Maven 的时候导致项目的语言级别自动被改成 Java5 然后导致编译不通过的问题。 1 2 3 4 5 6 7 8 9 10 11 12<profile> <id>jdk‐1.8</id> <activation> <activeByDefault>true</activeByDefault> <jdk>1.8</jdk> </activati
lwen
2018/04/16
7310
Spring学习笔记(十二)——SpringBoot基础和快速入门
Spring是Java企业版(Java Enterprise Edition,JEE,也称J2EE)的轻量级代替品。无需开发重量级的Enterprise JavaBean(EJB),Spring为企业级Java开发提供了一种相对简单的方法,通过依赖注入和面向切面编程,用简单的Java对象(Plain Old Java Object,POJO)实现了EJB的功能。
不愿意做鱼的小鲸鱼
2022/09/24
4760
Spring学习笔记(十二)——SpringBoot基础和快速入门
Spring Boot笔记2
按住Ctrl键,然后点击pom.xml中的spring-boot-starter-parent,跳转到了spring-boot-starter-parent的pom.xml,xml配置如下(只摘抄了部分重点配置):
楠羽
2023/12/29
2120
SpringBoot基础(一):快速入门
之前传统框架对依赖版本的选择具有固定的搭配格式,并且这些依赖版本的选择还不能乱搭配。于是SpringBoot将所有的技术版本的常见使用方案(parent版本)都整理出来,以后开发者直接使用它提供的方案(parent版本)即可,就不用担心冲突问题了。
冬天vs不冷
2025/01/21
2120
SpringBoot基础(一):快速入门
Spring Boot 源码解析,一步步分析启动原理
Spring Boot 是一套 Java 开发框架,可以快速构建基于 Spring 生态的 Java Application,实现自动配置,作为 Java 领域最火的技术栈,我们有必要搞清楚 Spring Boot 的底层原理,今天楠哥就带大家一探究竟。
南风
2020/01/15
7190
Spring Boot 源码解析,一步步分析启动原理
SpringBoot之parent、starter、引导类、内嵌tomcat
把所有的技术(jar)使用的固定搭配格式都给开发出来,以后你用某个技术,就不用一次写一堆依赖了
冬天vs不冷
2025/01/21
2140
关于Spring Boot你不得不知道的事--Spring Boot的基本操作
表示当前pom文件从spring-boot-starter-parent继承下来,在spring-boot-starter-parent中提供了很多默认配置,可以简化我们的开发。
Java架构
2019/06/21
9840
关于Spring Boot你不得不知道的事--Spring Boot的基本操作
SpringBoot快速入门
提起SpringBoot就不得不说Spring,Spring是Java企业版(Java Enterprise Edition,JEE,也称J2EE)的轻量级代替品。无需开发重量级的Enterprise JavaBean(EJB),Spring为企业级Java开发提供了一种相对简单的方法,通过依赖注入和面向切面编程,用简单的Java对象(Plain Old Java Object,POJO)实现了EJB的功能。
兜兜转转
2023/03/28
6840
SpringBoot快速入门
SpringBoot引入的依赖为什么没有版本号
在入门springboot的时候我相信很多朋友都有过这样的疑问,为什么spring boot项目在pom文件引入的某些依赖不需要指定版本呢?但是却并不妨碍我们使用或下载jar包 <?xml versi
框架师
2021/03/04
2.8K0
深入Spring Boot (二):Spring Boot对构建系统的支持
Spring Boot强烈建议开发者在使用Spring Boot的时候选择支持依赖管理的构建系统,以获取更好的使用支持,比如Maven或Gradle。因为Maven和Gradle的实现不同,所以Spring Boot对它们的使用支持也不同。 Maven 每次Spring Boot新版本发布时都会提供一个它所支持的Spring模块及第三方库版本列表,例如Spring Boot1.5.10版本支持的库列表可以在https://github.com/spring-projects/spring-boot/blo
JavaQ
2018/04/08
1K0
深入Spring Boot (二):Spring Boot对构建系统的支持
SpringBoot基础(二、原理分析)
接着上一篇SpringBoot基础(一、快速入门)的介绍,我们来简单的谈谈SpringBoot的原理分析。
营琪
2019/11/04
4560
SpringBoot入门建站全系列(一)项目建立
个人对SpringBoot的理解:就是一Spring大杂烩,把Spring的一些组件,或者跟Spring有联系的组件整合在一起,方便使用。
品茗IT
2019/07/31
7200
微服务下 Spring Boot Maven 工程依赖关系管理
最基本的 pom.xml 包含工程信息、Spring Boot 父工程、属性配置、依赖包、构建插件
码农小胖哥
2019/12/10
1.4K0
微服务下 Spring Boot Maven 工程依赖关系管理
SpringBoot源码深度解析
Javaweb---Servlet+tomcat + Struct2 SpringMVC SPRINGboot.....
艾编程
2020/06/12
2.4K0
SpringBoot源码深度解析
SpringCloud 项目pom.xml配置
首先声明,本项目整体用的是SpringCloud+SpringBoot+Mybatis-plus框架
用户5546570
2020/12/21
2.4K0
SpringBoot教程(二) | 创建SpringBoot项目
所谓spring Boot项目,其实本质上就是一个maven/gradle项目,这是里面通过引入springBoot专门设置好的依赖,完成整个项目开发流程的简化。所以我们就先创建一个maven 项目即可。当然也可以采用 spring initiallizer进行创建(需联网)。
一缕82年的清风
2022/04/08
5860
SpringBoot教程(二) | 创建SpringBoot项目
相关推荐
快速学习-SpringBoot原理分析
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验