Java高级---Spring Boot---5依赖管理

5 依赖管理

说明

我多是使用的Maven

5.1 Spring Boot的Starters详解

Spring Boot Starters 是一种便捷的依赖管理方式,它们是 Spring Boot 提供的"启动器",每个启动器都包含了一系列已经配置好的依赖。

  • Starters的作用 : 它们预先定义了一组依赖,这些依赖通常是协同工作的,Spring Boot 会自动管理这些依赖的版本,确保它们之间的兼容性。
  • 使用Starters : 在 Maven 的 pom.xml 文件中,你只需要添加对应的 <dependency> 标签;在 Gradle 的 build.gradle 文件中,只需在 dependencies 块中添加对应的依赖项。
  • 常见的Starters :
    • spring-boot-starter: 包含 Spring Boot 的核心功能,如自动配置、日志框架(SLF4J 和 Logback)以及 YAML 配置支持。
    • spring-boot-starter-web: 用于构建 Web 应用程序,包括 Tomcat 作为内嵌服务器和 Spring MVC。
    • spring-boot-starter-data-jpa: 包含数据访问所需的依赖,如 Hibernate、Spring Data JPA 和数据库连接池。
    • spring-boot-starter-security: 集成 Spring Security,提供完整的安全支持。
    • spring-boot-starter-test: 包含用于测试 Spring Boot 应用程序的库,如 JUnit、Spring Boot TestContext Framework 等。

案例 : 添加 Web 支持

要在 Maven 项目中添加 Web 支持,可以在 pom.xml 文件中添加以下依赖:

xml 复制代码
<!-- pom.xml -->
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

在 Gradle 中,添加依赖的方式如下:

groovy 复制代码
// build.gradle
dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
}

5.2 自定义依赖管理详解

自定义依赖管理 允许开发者引入特定的库版本或管理非 Starters 包含的依赖。

  • Maven :
    • 使用 <dependency> 标签添加自定义依赖。
    • 使用 <version> 标签指定依赖的具体版本。
    • 使用 <dependencyManagement> 标签在多模块项目中集中管理依赖版本。
  • Gradle :
    • dependencies 块中添加自定义依赖。
    • 使用 extversions 来定义版本常量,以便在项目中重用。
    • 使用 dependencyManagement 块结合 springBoot() 插件来集中管理依赖版本。

案例 : 自定义依赖管理

假设你需要使用一个特定版本的数据库驱动,你可以在 Maven 的 pom.xml 文件中这样配置:

xml 复制代码
<!-- pom.xml -->
<dependencies>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.23</version>
    </dependency>
</dependencies>

在 Gradle 中,可以这样配置:

groovy 复制代码
// build.gradle
dependencies {
    implementation 'mysql:mysql-connector-java:8.0.23'
}

排除依赖 :

有时自动配置的依赖与项目中的其他依赖冲突,这时可以排除特定的依赖。在 Maven 中使用 <exclusions> 标签,在 Gradle 中使用 exclude 方法。

案例 : 排除依赖

在 Maven 中排除一个依赖:

xml 复制代码
<!-- pom.xml -->
<dependency>
    <groupId>some-group</groupId>
    <artifactId>some-artifact</artifactId>
    <version>1.0.0</version>
    <exclusions>
        <exclusion>
            <groupId>conflicting-group</groupId>
            <artifactId>conflicting-artifact</artifactId>
        </exclusion>
    </exclusions>
</dependency>

在 Gradle 中排除一个依赖:

groovy 复制代码
// build.gradle
dependencies {
    implementation ('some-group:some-artifact:1.0.0') {
        exclude group: 'conflicting-group', module: 'conflicting-artifact'
    }
}

版本范围 :

在某些情况下,可能希望依赖库能够自动更新到某个范围内的版本,而不是固定在一个特定版本。在 Maven 和 Gradle 中都可以使用版本范围。

案例 : 指定版本范围

在 Maven 中:

xml 复制代码
<!-- pom.xml -->
<dependency>
    <groupId>some-group</groupId>
    <artifactId>some-artifact</artifactId>
    <version>[1.0.0,2.0.0)</version>
</dependency>

在 Gradle 中:

groovy 复制代码
// build.gradle
dependencies {
    implementation 'some-group:some-artifact:1.0.0+'
}

本地仓库 :

配置本地仓库可以提高构建速度,特别是在没有网络连接或需要离线工作时。在 Maven 的 settings.xml 文件中配置本地仓库路径,在 Gradle 中可以在 gradle.properties 文件中配置。

通过这些详细的步骤和案例,您可以更好地理解 Spring Boot 的依赖管理和如何使用 Starters 以及自定义依赖来满足项目需求。

相关推荐
洛小豆11 小时前
在Java中,Integer.parseInt和Integer.valueOf有什么区别
java·后端·面试
前端小张同学11 小时前
服务器上如何搭建jenkins 服务CI/CD😎😎
java·后端
ytadpole11 小时前
Spring Cloud Gateway:一次不规范 URL 引发的路由转发404问题排查
java·后端
华仔啊11 小时前
基于 RuoYi-Vue 轻松实现单用户登录功能,亲测有效
java·vue.js·后端
程序员鱼皮12 小时前
刚刚 Java 25 炸裂发布!让 Java 再次伟大
java·javascript·计算机·程序员·编程·开发·代码
浮游本尊12 小时前
Java学习第21天 - 微服务架构设计
java
渣哥12 小时前
Java CyclicBarrier 详解:原理、使用方式与应用场景
java
杨杨杨大侠12 小时前
打开 JVM 黑匣子——走进 Java 字节码(一)
java·jvm·agent
SimonKing12 小时前
接口调用总失败?试试Spring官方重试框架Spring-Retry
java·后端·程序员