spring-boot-starter-parent与spring-boot-dependencies关系

前言

一开始使用springboot时,经常会在springboot的pom文件中看见spring-boot-starter-parent、spring-boot-dependencies、spring-boot-starter-web、spring-boot-starter等依赖,他们之间的关系是什么样的,通过这篇文章梳理一下。

常见依赖的pom:

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

<dependency>  
	<groupId>org.springframework.boot</groupId>  
	<artifactId>spring-boot-dependencies</artifactId>  
</dependency>

<dependency>  
	<groupId>org.springframework.boot</groupId>  
	<artifactId>spring-boot-starter-web</artifactId>  
</dependency>

<dependency>  
	<groupId>org.springframework.boot</groupId>  
	<artifactId>spring-boot-starter</artifactId>  
</dependency>

结论:先说结论,在创建spring boot工程时,spring-boot-starter-parent 和 spring-boot-dependencies是二选一的关系,在pom中引入其中一个就可以了。

spring-boot-starter-parent

使用spring-boot-starter-parent通过maven继承使用,方式如图,spring-boot-starter-parent会对常见的springboot使用到的包进行统一管理。在本工程中使用的时候,只需要按需根据groupId和artifactId引入,无需填写具体的版本号。

![[Pasted image 20231126171258.png]]

如下图,点开spring-boot-starter-parent的实现,其实能发现spring-boot-starter-parent 也是通过继承 spring-boot-dependencies而来。
在这里插入图片描述

spring-boot-dependencies

spring-boot-starter-parent是通过继承的方式引入springboot相关的依赖,spring-boot-dependencies也是对常用的springboot包进行统一管理,但是是通过将spring-boot-dependencies中统一管理的包直接引入到当前项目(scope使用import实现)。

在这里插入图片描述

starter和starter-web

spring-boot-starterspring-boot-starter-web 都是spring-boot-dependencies依赖管理下的具体的包。

  • spring-boot-starter:是Spring Boot框架的核心模块之一,它定义了一组通用的依赖项集合,用于简化Spring Boot应用程序的构建和配置。这些Starter模块提供了对各种功能的自动配置和集成,使得我们可以轻松地使用这些功能而无需手动进行繁琐的配置。

  • spring-boot-starter-web:是基于spring-boot-starter的一个扩展模块,它专门用于构建Web应用程序。它引入了Spring MVC、Tomcat服务器、Jackson JSON处理库等必要的依赖项,并通过自动配置来提供默认的Web应用程序上下文。它简化了构建Web应用程序的过程,使得我们可以更快速地搭建一个基于Spring MVC的Web项目。

结论spring-boot-starter-web是在spring-boot-starter的基础上针对Web应用程序提供的一个特定功能的Starter。如下图点开spring-boot-starter-web 的实现可以发现,spring-boot-starter-web已经引入了spring-boot-starter,所以在使用spring-boot-starter-web的时候不用单独再引用spring-boot-starter。

在这里插入图片描述

参考文章

  • https://blog.csdn.net/weixin_41979002/article/details/120678635
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值