Spring Boot依赖管理机制
parent父配置进行依赖管理
版本自动仲裁
在用maven创建的Spring Boot项目的pom文件中又这样的parent配置
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.3</version>
</parent>
点进spring-boot-starter-parent之后可以看到还有一个,这是他的父配置
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.4.3</version>
</parent>
再点进spring-boot-dependencies就可以看到有一个properties,里面声明了我们常用的所有依赖
所以就像下面一样,我们导入依赖的时候就不用再注明版本号了,会自动仲裁版本
自定义依赖版本
如果你想使用自动仲裁之外的依赖的版本,就需要在properties中,按照上面官方声明的写法,注明版本
<properties>
<mysql.version>5.1.43<mysql.version>
</properties>
例如我们引入一个mysql依赖
这里我们没有注明版本号,所以这个依赖的版本和父配置中声明的一致。
这里我在properties中修改mysql版本后,更新依赖,mysql依赖的版本就变了
starter场景启动器
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
在一个最简单的hello world程序中
上面的spring-boot-starter-web就帮我们包含了web场景常用的所有依赖
spring-boot-starter-中,这个对应一种场景,starters引入这种starter,就会自动给我们引入对应场景常规的依赖
我们打开IDEA的依赖树
我们可以看到我们引入一个spring-boot-starter-web,它就帮我们引入了tomcat的包,spring-webmvc和json的包
Spring Boot支持的所有场景:Spring Boot支持场景
而这个spring-boot-starter是每一个场景启动器最基本的依赖
starter也可以自己创建,一般遇到的***-spring-boot-starter**都是第三方提供的starter
所有场景启动器最底层的依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>2.4.3</version>
<scope>compile</scope>
</dependency>