SpringBoot2.2.13中starter的原理

本文探讨SpringBoot2.2.13中starter的工作原理,starter简化了项目依赖管理,如通过引入`spring-boot-starter-web`,即可自动包含所需第三方库。分析`pom.xml`文件,展示starter如何整合并引入项目所需JAR包,实现自动配置与简化配置文件的功能。Spring官方和第三方厂商提供了丰富的starter以支持快速开发。
摘要由CSDN通过智能技术生成

SpringBoot2.2.13中starter的原理

​ 在上一节的分析中,我们知道spring-boot-starter-parent 出厂就约定好了项目中用到的第三方JAR包的maven坐标,但是项目中真正需要引入的JAR包是在项目的<dependencies> 中引入的。我再次贴一下项目pom文件:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
		 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
		 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<!--Springboot父项目依赖管理-->
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<!--将这里的版本号,修改成自己刚刚编译的版本号,方便调试 -->
		<version>2.2.13.RELEASE.aibei</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>

	<groupId>com.ai_bei</groupId>
	<artifactId>springboot-ai-bei-tests</artifactId>
	<version>1.0-SNAPSHOT</version>

	<properties>
		<maven.compiler.source>17</maven.compiler.source>
		<maven.compiler.target>17</maven.compiler.target>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>

	<dependencies>
        <!--真正需要引入的JAR包-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>

​ 之前的的Spring WEB 项目,还需要依赖外部的Tomcat来实现部署,相比现在的Springboot项目,只需要简单的引入一个spring-boot-starter-web 依赖,就可以实现之前的Spring WEB 项目的全部功能。

​ 当我们点进去看看spring-boot-starter-web的实现如下:

<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-json</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-tomcat</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-validation</artifactId>
			<exclusions>
				<exclusion>
					<groupId>org.apache.tomcat.embed</groupId>
					<artifactId>tomcat-embed-el</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
		</dependency>
	</dependencies>

​ 会发现,spring-boot-starter-web 的pom文件中引入了下面的依赖:spring-boot-starter ,spring-boot-starter-json,spring-boot-starter-tomcat,spring-boot-starter-validation,spring-web,spring-webmvc

​ 显然:spring-boot-starter-web是将Spring Web项目所需的项目依赖进行了项目整合,当我们创建一下新的模块并且在<dependencies> 中引入了spring-boot-starter-web这个Starter后,那么项目也就会直接依赖starter中所依赖的JAR包。
​ Spring Web项目需要多且繁杂的配置文件,Springboot项目显然干净简洁。当我们依赖spring-boot-starter-web后,我们可以通过application的配置来实现对账模块项的配置,并且也可以直接使用模块它初始的配置值。以及还能实现自动配置类对模块中Bean的自动装配。

​ Springboot官方提供很多的starter,第三方产商也主动集成Springboot开发并且提供他们的starter。参考地址:https://docs.spring.io/spring-boot/docs/2.2.13.RELEASE/reference/htmlsingle/#using-boot-starter
spirngboot官方starter

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

深漂的小小小刘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值