1、依赖管理
Spring Boot的每个版本都提供了一个它所支持的依赖的列表。 在开发中,我们不需要在构建配置中为这些依赖声明版本,因为Spring Boot会帮我们管理这些。 当我们升级Spring Boot本身时,这些依赖也会一同升级。
它的实现原理就是前面我们讲过spring-boot-starter-parent,它 是一个特殊的starter,它在它的pom.xml 的 dependency-management 里面声明了spring boot的各个依赖及其版本。子项目直接继承它,子项在导入 spring boot 依赖时,就不需要声明版本号。
在这里几乎声明了所有开发中常用的依赖的版本号
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.0.0</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
下面是spring-boot-starter-parent声明的版本号信息
<properties>
<angus-mail.version>1.0.0</angus-mail.version>
<artemis.version>2.26.0</artemis.version>
<aspectj.version>1.9.9.1</aspectj.version>
<assertj.version>3.23.1</assertj.version>
<awaitility.version>4.2.0</awaitility.version>
<brave.version>5.14.1</brave.version>
<build-helper-maven-plugin.version>3.3.0</build-helper-maven-plugin.version>
<byte-buddy.version>1.12.19</byte-buddy.version>
<cache2k.version>2.6.1.Final</cache2k.version>
<caffeine.version>3.1.2</caffeine.version>
<cassandra-driver.version>4.15.0</cassandra-driver.version>
<classmate.version>1.5.1</classmate.version>
<commons-codec.version>1.15</commons-codec.version>
<commons-dbcp2.version>2.9.0</commons-dbcp2.version>
<commons-lang3.version>3.12.0</commons-lang3.version>
<commons-pool.version>1.6</commons-pool.version>
<commons-pool2.version>2.11.1</commons-pool2.version>
<couchbase-client.version>3.4.0</couchbase-client.version>
<db2-jdbc.version>11.5.8.0</db2-jdbc.version>
<dependency-management-plugin.version>1.1.0</dependency-management-plugin.version>
<derby.version>10.16.1.1</derby.version>
<dropwizard-metrics.version>4.2.13</dropwizard-metrics.version>
<ehcache3.version>3.10.8</ehcache3.version>
<elasticsearch-client.version>8.5.1</elasticsearch-client.version>
<flyway.version>9.5.1</flyway.version>
<freemarker.version>2.3.31</freemarker.version>
<git-commit-id-plugin.version>5.0.0</git-commit-id-plugin.version>
<glassfish-jaxb.version>4.0.1</glassfish-jaxb.version>
<glassfish-jstl.version>3.0.1</glassfish-jstl.version>
<graphql-java.version>19.2</graphql-java.version>
<groovy.version>4.0.6</groovy.version>
<gson.version>2.9.1</gson.version>
<h2.version>2.1.214</h2.version>
<hamcrest.version>2.2</hamcrest.version>
<hazelcast.version>5.1.5</hazelcast.version>
<hibernate.version>6.1.5.Final</hibernate.version>
<hibernate-validator.version>8.0.0.Final</hibernate-validator.version>
<hikaricp.version>5.0.1</hikaricp.version>
<hsqldb.version>2.7.1</hsqldb.version>
<htmlunit.version>2.65.1</htmlunit.version>
<httpasyncclient.version>4.1.5</httpasyncclient.version>
<httpclient.version>4.5.13</httpclient.version>
<httpclient5.version>5.1.4</httpclient5.version>
<httpcore.version>4.4.15</httpcore.version>
<httpcore5.version>5.1.5</httpcore5.version>
<infinispan.version>14.0.2.Final</infinispan.version>
<influxdb-java.version>2.23</influxdb-java.version>
<jackson-bom.version>2.14.1</jackson-bom.version>
<jakarta-activation.version>2.1.0</jakarta-activation.version>
<jakarta-annotation.version>2.1.1</jakarta-annotation.version>
<jakarta-jms.version>3.1.0</jakarta-jms.version>
<jakarta-json.version>2.1.1</jakarta-json.version>
<jakarta-json-bind.version>3.0.0</jakarta-json-bind.version>
<jakarta-mail.version>2.1.0</jakarta-mail.version>
<jakarta-management.version>1.1.4</jakarta-management.version>
<jakarta-persistence.version>3.1.0</jakarta-persistence.version>
<jakarta-servlet.version>6.0.0</jakarta-servlet.version>
<jakarta-servlet-jsp-jstl.version>3.0.0</jakarta-servlet-jsp-jstl.version>
<jakarta-transaction.version>2.0.1</jakarta-transaction.version>
<jakarta-validation.version>3.0.2</jakarta-validation.version>
<jakarta-websocket.version>2.1.0</jakarta-websocket.version>
<jakarta-ws-rs.version>3.1.0</jakarta-ws-rs.version>
<jakarta-xml-bind.version>4.0.0</jakarta-xml-bind.version>
<jakarta-xml-soap.version>3.0.0</jakarta-xml-soap.version>
<jakarta-xml-ws.version>4.0.0</jakarta-xml-ws.version>
<janino.version>3.1.9</janino.version>
<javax-cache.version>1.1.1</javax-cache.version>
<javax-money.version>1.1</javax-money.version>
<jaxen.version>1.2.0</jaxen.version>
<jaybird.version>4.0.7.java11</jaybird.version>
<jboss-logging.version>3.5.0.Final</jboss-logging.version>
<jdom2.version>2.0.6.1</jdom2.version>
<jedis.version>4.3.1</jedis.version>
<jersey.version>3.1.0</jersey.version>
<jetty-reactive-httpclient.version>3.0.7</jetty-reactive-httpclient.version>
<jetty.version