SpringBoot了解自动配置原理(一)
- 一、SpringBoot特点
- 1.1、依赖管理
- 1.1.1 自动版本仲裁
- 1.1.2 场景启动器
一、SpringBoot特点
1.1、依赖管理
- 父项目做依赖管
1.1.1 自动版本仲裁
依赖管理
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.4.RELEASE</version>
</parent>
在上一篇文章中我们在pom.xml文件引入了这个父项目,它是做什么用的呢?我们ctrl+左键点击spring-boot-starter-parent进去看看就知道了
结果发现它也有一个父项目
- 那就继续点进去,看看我们本项目导入的父项目(spring-boot-starter-parent)中的父项目(spring-boot-dependencies)具体有什么
会发现spring-boot-dependencies它几乎声明了所有开发中常用的依赖的版本号。
因为maven的依赖传递原因,当父maven声明了依赖(声明了依赖的版本号也一样)时,它的子maven也会继承父maven声明的所有依赖(也会继承父maven声明的版本号)。
这里父maven声明了依赖的版本号,子maven也会有这些依赖的版本号,这就实现的自动版本仲裁机制。
1、引入依赖默认都可以不写版本
2、引入非版本仲裁的jar,要写版本号。
可以修改默认版本号
1、查看spring-boot-dependencies里面规定当前依赖的版本 用的 key。
2、在当前项目里面重写配置
<properties>
<mysql.version>5.1.43</mysql.version>
</properties>
1.1.2 场景启动器
我们知道了它对依赖版本的控制,那么springboot是怎么知道我要具体使用什么依赖呢?平时我们要做web开发要导入一堆的依赖如:json、servlet、jsp、junit等等。现在我们有了springboot要开发web只要导入一个依赖就可以
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
解释:
web的启动器
- 它会导入web的场景下所有要用的依赖
- starter意思就是一组依赖的描述
- spring-boot-starter-*,*就代表某种场景
点进spring-boot-starter-web这个依赖可以看到
它也导入了一堆的依赖,也利用了maven的依赖传递。
而XX启动器就是帮我们对 某些开发场景需要导入的所有依赖进行了整合,我们要开发某种场景,比如我们要开发web应用,就导入web启动器spring-boot-starter-web
,它就会导入web下的所有需要的依赖
下一篇:SpringBoot了解自动配置原理(二)