SpringBoot起步依赖和自动配置
起步依赖
我们知道一个SpringBoot项目都要以 spring-boot-starter-parent
作为父工程,也就是要在工程的 pom
文件中引入如下依赖(以 2.2.6版本为例
):
<!-- in pom.xml of our project -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.6.RELEASE</version>
</parent>
我们跟进 spring-boot-starter-parent.xml
,可以发现 spring-boot-starter-parent
还有个父工程即 spring-boot-dependencies
:
<!-- in spring-boot-starter-parent-2.2.6.RELEASE.pom -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.2.6.RELEASE</version>
<relativePath>../../spring-boot-dependencies</relativePath>
</parent>
那在 spring-boot-dependencies.xml
中又做了什么呢?我们查看该 xml
文件,可以看到其定义了一部分坐标的版本、依赖管理即相关插件,以下列举了我们比较熟悉的版本控制项:
<!-- in spring-boot-dependencies-2.2.6.RELEASE.pom -->
<!-- SpringBoot起步依赖引入jar包的版本控制属性 -->
<properties>
<activemq.version>5.15.12</activemq.version>
<aspectj.version>1.9.5</aspectj.version>
<build-helper-maven-plugin.version>3.0.0</build-helper-maven-plugin.version>
<commons-dbcp2.version>2.7.0</commons-dbcp2.version>
<commons-pool2.version>2.7.0</commons-pool2.version>
<elasticsearch.version>6.8.7</elasticsearch.version>
<freemarker.version>2.3.30</freemarker.version>
<hibernate.version>5.4.12.Final</hibernate.version>
<hibernate-validator.version>6.0.18.Final</hibernate-validator.version>
<httpclient.version>4.5.12</httpclient.version>
<jackson.version>2.10.3</jackson.version>
<junit.version>4.12