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 以及自定义依赖来满足项目需求。

相关推荐
2021_fc1 分钟前
Flink入门指南:使用Java构建第一个Flink应用
java·大数据·flink
GOTXX14 分钟前
用Rust实现一个简易的rsync(远程文件同步)工具
开发语言·后端·rust
诸葛亮的芭蕉扇18 分钟前
抓图巡检-底图支持绘制
开发语言·前端·javascript
Java开发追求者34 分钟前
vscode导入springboot项目
java·ide·spring boot·vscode
麦烤楽鸡翅35 分钟前
坚持60s (攻防世界)
java·网络安全·jar·ctf·misc·反编译·攻防世界
熊猫比分站37 分钟前
让电竞数据实时跳动:Spring Boot 后端 + Vue 前端的完美融合实践
前端·vue.js·spring boot
Wilson Chen1 小时前
Spring Boot 多级缓存实现与优化:从本地缓存到 Redis
spring boot·redis·缓存
少废话h1 小时前
Flume Kafka源与汇的topic覆盖问题解决
java·linux·kafka·flume
激动的兔子1 小时前
Geoserver修行记-连接瀚高数据库显示java.sql.SQLException: org.postgresql.util.PSQLException
java·geoserver·瀚高数据库
一 乐2 小时前
健康打卡|健康管理|基于java+vue+的学生健康打卡系统设计与实现(源码+数据库+文档)
android·java·数据库·vue.js·spring boot·微信小程序