说说如何管理 Spring Boot 中的起步依赖

Spring Boot 起步依赖的功能是:我们只要在构建文件中指定我们所需要的功能,构建程序就会引入相应的依赖包。它就像是一个 Maven 项目对象模型( Project Object Model , POM ),其内部定义了对其他库的传递依赖,这些东西加在一起就可以支持我们所需要的某项功能。

1 基本用法

假设我们在 Gradle 文件中,指定了以下功能(JPA 与 Thymeleaf):

    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'

Thymeleaf 是一种模板引擎。

配置好后,通过刚才所添加的起步依赖,构建程序就会在后端默默地加入一大把相关依赖库。

注意: 起步依赖本身的版本是由正在使用的 Spring Boot 的版本来决定的,而起步依赖会决定它们所引入第三方依赖的版本。这样做的好处是, Spring Boot 会确保所引入的全部依赖都能够相互兼容。

gradle dependencies 命令会显示当前项目的所有依赖关系、每一个库以及它们的版本。

2 管理起步依赖所引入的第三方库

我们可以通过修改 Gradle 配置,来覆盖它们引入的第三方依赖的版本号、排除不需要的第三方依赖以及加入那些 Spring Boot 起步依赖没有涵盖的第三方依赖库。

2.1 排除不需要的第三方依赖

假设我们想排除掉 spring-boot-starter-web 所引入的 jackson 依赖,那么可以修改 Gradle 配置:

    implementation ('org.springframework.boot:spring-boot-starter-web'){
        exclude group:'com.fasterxml.jackson.core'
    }

2.2 修改引入的第三方依赖的版本号

假设 Spring Boot 所加载的 jackson-databind 依赖版本为 2.9.9.3。

我们希望使用 2.3.1 版本,那么可以修改 Gradle 配置:

  implementation 'com.fasterxml.jackson.core:jackson-databind:2.3.1'

Spring Boot 会确保起步依赖中的各个依赖版本之间兼容性良好,所以应该只在确实必要的情况下覆盖这些依赖。

推荐阅读更多精彩内容