Spring Cloud Azure 开发人员指南

Spring Cloud Azure将 Spring Boot 应用程序与 Azure 服务集成。 本开发人员指南介绍如何管理依赖项、选择初学者并使用示例来加速Java应用程序开发。

有关支持的版本的详细信息,请参阅 Spring 版本映射

获取帮助

如果对此文档有任何疑问,请在以下GitHub存储库之一中创建GitHub问题。 也欢迎提交拉取请求。

GitHub存储库 描述
Azure/azure-sdk-for-java 此存储库保存源代码。
Azure-Samples/azure-spring-boot-samples 此存储库保存相关示例。
MicrosoftDocs/azure-dev-docs 此存储库保存文档。

入门

设置依赖项

物料清单(BOM)

如果您使用 Maven,请将 BOM 添加到您的 pom.xml 文件的 dependencyManagement 部分中,如以下示例所示。 使用 BOM 时,无需为任何 Maven 依赖项指定版本,因为 BOM 处理版本控制。

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>com.azure.spring</groupId>
      <artifactId>spring-cloud-azure-dependencies</artifactId>
      <version>7.4.0</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

使用 Gradle,可以通过以下方式导入 spring-cloud-azure-dependencies BOM:

  • 通过添加依赖项,使用 Gradle 的本机 BOM 支持,如以下示例所示。

    import org.springframework.boot.gradle.plugin.SpringBootPlugin
    
    plugins {
      id("java")
      id("org.springframework.boot") version "4.0.1"
    }
    
    dependencies {
        implementation(platform(SpringBootPlugin.BOM_COORDINATES))
        implementation(platform("com.azure.spring:spring-cloud-azure-dependencies:{version}"))
    }
    
  • 使用 io.spring.dependency-management 插件并导入 BOM dependencyManagement,如以下示例所示。

    plugins {
        id("io.spring.dependency-management") version "1.1.7"
    }
    
    dependencyManagement {
        imports {
            mavenBom("com.azure.spring:spring-cloud-azure-dependencies:{version}")
        }
    }
    

有关详细信息,请参阅 Spring Boot Gradle 插件参考指南

注意

如果使用 Spring Boot 4.0.x,请将 spring-cloud-azure-dependencies 版本设置为 7.4.0

如果使用 Spring Boot 3.5.x,请将 spring-cloud-azure-dependencies 版本设置为 6.5.0

如果使用 Spring Boot 3.1.x-3.5.x,请确保将 spring-cloud-azure-dependencies 版本设置为 5.25.0

如果使用 Spring Boot 2.x,请确保将 spring-cloud-azure-dependencies 版本设置为 4.20.0

应在 <dependencyManagement> 文件的 部分中配置此材料清单(BOM)。 这可确保所有 Spring Cloud Azure依赖项都使用相同的版本。

有关此 BOM 所用版本的更多信息,请参阅 我应该使用哪个版本的 Spring Cloud Azure

入门依赖项

Spring Cloud Azure Starters 是一组方便的依赖项描述符,用于包含在应用程序中。 每个初学者都包含开始使用其相应的 Spring Cloud Azure 模块所需的所有依赖项和可传递依赖项。 这些启动器可通过 Azure 服务助力 Spring Boot 应用程序开发。

例如,如果要开始使用 Spring 和 Azure Cosmos DB 进行数据暂留,请在项目中包括 spring-cloud-azure-starter-cosmos 依赖项。

下表列出了 Spring Cloud Azure在 com.azure.spring 组下提供的应用程序初学者:

名字 描述
spring-cloud-azure-starter 核心启动器,包括对自动配置的支持。
spring-cloud-azure-starter-active-directory 用于将 Microsoft Entra ID 与 Spring Security 结合使用的启动器。
spring-cloud-azure-starter-active-directory-b2c 用于在 Spring Security 中使用 Azure Active Directory B2C 的入门组件。
spring-cloud-azure-starter-appconfiguration 使用Azure 应用程序配置的初学者。
spring-cloud-azure-starter-appconfiguration-config 使用 Azure 应用程序配置 配置入门。
spring-cloud-azure-starter-cosmos 使用Azure Cosmos DB的初学者。
spring-cloud-azure-starter-eventhubs 使用Azure 事件中心的初学者。
spring-cloud-azure-starter-eventgrid 使用Azure 事件网格的初学者。
spring-cloud-azure-starter-keyvault 使用Azure 密钥保管库的初学者。
spring-cloud-azure-starter-keyvault-secrets 使用Azure 密钥保管库机密的初学者。
spring-cloud-azure-starter-keyvault-jca 使用 Azure 密钥保管库 JCA 的初学者。
spring-cloud-azure-starter-keyvault-certificates 使用Azure 密钥保管库证书的初学者。
spring-cloud-azure-starter-servicebus 使用Azure 服务总线的初学者。
spring-cloud-azure-starter-servicebus-jms 使用 Azure 服务总线 和 JMS 的初学者。
spring-cloud-azure-starter-storage 使用Azure 存储的初学者。
spring-cloud-azure-starter-storage-blob 使用 Azure 存储 Blob 的初学者。
spring-cloud-azure-starter-storage-file-share 使用 Azure 存储文件共享的入门指南。
spring-cloud-azure-starter-storage-queue 使用Azure 存储队列的初学者。
spring-cloud-azure-starter-actuator 用于使用 Spring Boot Actuator 的启动器,它提供了生产就绪功能。

下表列出了 Spring Data 支持的初学者:

名字 描述
spring-cloud-azure-starter-data-cosmos 用于 Azure Cosmos DB 的 Spring Data 启动器。

下表列出了 Spring Data Redis 支持的初学者:

名字 描述
spring-cloud-azure-starter-data-redis-lettuce 将 Spring Data 和 Azure Cache for Redis 与 Lettuce 配合使用的初学者。

下表列出了支持 Spring Integration 的启动器:

名字 描述
spring-cloud-azure-starter-integration-eventhubs 使用 Azure 事件中心 和 Spring Integration 的初学者。
spring-cloud-azure-starter-integration-servicebus 使用 Azure 服务总线 和 Spring Integration 的初学者。
spring-cloud-azure-starter-integration-storage-queue 用于 Azure 存储队列和 Spring Integration 的启动器。

下表列出了 Spring Cloud Stream 支持的初学者:

名字 描述
spring-cloud-azure-starter-stream-eventhubs 使用 Azure 事件中心 和 Spring Cloud Stream Binder 的初学者。
spring-cloud-azure-starter-stream-servicebus 使用 Azure 服务总线 和 Spring Cloud Stream Binder 的初学者。

下表列出了 MySQL 支持的初学者:

名字 描述
spring-cloud-azure-starter-jdbc-mysql 通过 Microsoft Entra 身份验证使用 Azure MySQL 数据库和 JDBC 的入门指南

下表列出了 PostgreSQL 支持的初学者:

名字 描述
spring-cloud-azure-starter-jdbc-postgresql 通过 Microsoft Entra 身份验证使用 Azure PostgreSQL 和 JDBC 的入门指南

学习 Spring Cloud Azure

有关显示使用情况的示例的完整列表,请参阅 Spring Cloud Azure 示例

自 3.10.x 以来的 4.0 中的新增功能

本文档介绍自 3.10 以来 4.0 中所做的更改。 此主要版本带来了更好的安全性、更精简的依赖项、对生产准备的支持等。

提示

有关迁移到 4.0 的详细信息,请参阅 4.0的 迁移指南。

以下列表总结了 Spring Cloud Azure 4.0 提供的一些更改:

  • 具有统一项目名称、项目 ID 和属性的统一开发体验。
  • 使用单个 spring-cloud-azure-dependencies BOM 简化了依赖项管理。
  • 扩展了 Spring Initializr 对 Azure 的支持,涵盖 Kafka、Event Hubs、Azure Cache for Redis 和 Azure 应用程序配置。
  • 重新架构 Spring 模块依赖项以删除多余的层和纠缠。
  • 托管标识支持Azure 应用程序配置、事件中心、服务总线、Azure Cosmos DB、密钥保管库、存储 Blob 和存储队列。
  • 我们的 Spring 库持续支持底层 Azure SDK 中的身份验证方式,例如针对 服务总线 和 Event Hubs 的 SAS 令牌身份验证和令牌凭据身份验证。
  • 凭据链现已默认启用,使应用程序能够从应用程序属性、环境变量、托管标识、IDE 等获取凭据。 有关更多信息,请参阅 Java 版 Azure 标识客户端库中的 DefaultAzureCredential 部分。
  • 在资源级别(如服务总线队列)进行精细访问控制,以便更好地管理安全并遵守 IT 策略。
  • 通过改进对 Azure SDK 客户端在同步和异步场景下的自动配置覆盖范围,以符合 Spring 惯用方式的形式提供了更多选项。
  • 新增了适用于 Azure 应用程序配置、事件中心、Azure Cosmos DB、密钥保管库、Blob 存储、队列存储和文件存储的运行状况指标。
  • Spring Cloud Sleuth 支持所有基于 HTTP 的Azure SDK。