Spring Cloud Azure 开发人员指南
本文 适用于:✅ 版本 4.19.0 ✅ 版本 5.19.0
Spring 是由 VMware 开发的开源应用程序框架,它提供了一种简化的模块化方法来创建 Java 应用程序。 Spring Cloud Azure 是一个开源项目,提供与 Azure 的无缝 Spring 集成。
有关支持的版本的详细信息,请参阅 Spring 版本映射。
获取帮助
如果对此文档有任何疑问,请在以下 GitHub 存储库之一中创建 GitHub 问题。 拉取请求也受到欢迎。
GitHub 存储库 | 描述 |
---|---|
Azure/azure-sdk-for-java | 此存储库保存源代码。 |
MicrosoftDocs/azure-dev-docs | 此存储库保存文档。 |
自 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、事件中心、Azure Redis 缓存和 Azure 应用配置。
- 重新架构 Spring 模块依赖项以删除多余的层和纠缠。
- Azure 应用配置、事件中心、服务总线、Azure Cosmos DB、Key Vault、存储 Blob 和存储队列的托管标识支持。
- 继续支持 Spring 库中的基础 Azure SDK 中的身份验证方法,例如使用服务总线和事件中心进行 SAS 令牌和令牌凭据身份验证。
- 凭据链现已默认启用,使应用程序能够从应用程序属性、环境变量、托管标识、IDE 等获取凭据。 有关详细信息,请参阅适用于 Java的 Azure 标识客户端库
的 DefaultAzureCredential 部分。 - 在资源级别(例如服务总线队列)进行精细访问控制,以便更好地管理安全并遵守 IT 策略。
- 通过针对同步和异步方案改进的 Azure SDK 客户端的自动配置覆盖,在 Spring-idiomatic 中公开的更多选项。
- 为 Azure 应用配置、事件中心、Azure Cosmos DB、Key Vault、存储 Blob、存储队列和存储文件添加了运行状况指示器。
- Spring Cloud Sleuth 支持所有基于 HTTP 的 Azure SDK。
4.0 迁移指南
有关迁移到 4.0 的详细信息,请参阅 4.0的
开始
设置依赖项
材料清单 (BOM)
如果使用 Maven,请将 BOM 添加到 dependencyManagement
部分中 pom.xml 文件,如以下示例所示。 使用 BOM 时,无需为任何 Maven 依赖项指定版本,因为版本控制委托给 BOM。
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-dependencies</artifactId>
<version>5.19.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 "3.2.O" } dependencies { implementation(platform(SpringBootPlugin.BOM_COORDINATES)) implementation(platform("com.azure.spring:spring-cloud-azure-dependencies:{version}")) }
使用
io.spring.dependency-management
插件并在dependencyManagement
中导入 BOM,如以下示例所示:plugins { id("io.spring.dependency-management") version "1.1.0" } dependencyManagement { imports { mavenBom("com.azure.spring:spring-cloud-azure-dependencies:{version}") } }
有关详细信息,请参阅 Spring Boot Gradle 插件参考指南。
注意
如果使用 Spring Boot 2.x,请确保将 spring-cloud-azure-dependencies
版本设置为 4.19.0
。
应在 pom.xml 文件的 <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 | 将 Azure Active Directory B2C 与 Spring Security 配合使用的入门。 |
spring-cloud-azure-starter-appconfiguration | 使用 Azure 应用配置的初学者。 |
spring-cloud-azure-starter-cosmos | 使用 Azure Cosmos DB 的入门方法。 |
spring-cloud-azure-starter-eventhubs | 使用 Azure 事件中心入门。 |
spring-cloud-azure-starter-keyvault | 用于使用 Azure Key Vault 的初学者。 |
spring-cloud-azure-starter-keyvault-secrets | 使用 Azure Key Vault 机密的入门方法。 |
spring-cloud-azure-starter-keyvault-certificates | 使用 Azure Key Vault 证书的初学者。 |
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-initialize | 使用 Spring Boot 的执行器入门,它提供了生产就绪的功能。 |
下表列出了 Spring Data 支持的初学者:
名字 | 描述 |
---|---|
spring-cloud-azure-starter-data-cosmos | 用于 Azure Cosmos DB 的 Spring Data 入门。 |
下表列出了 Spring Integration 支持的初学者:
名字 | 描述 |
---|---|
spring-cloud-azure-starter-integration-eventhubs | 使用 Azure 事件中心和 Spring 集成入门。 |
spring-cloud-azure-starter-integration-servicebus | 使用 Azure 服务总线和 Spring 集成入门。 |
spring-cloud-azure-starter-integration-storage-queue | 使用 Azure 存储队列和 Spring 集成入门。 |
下表列出了 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 Boot 3
Azure SDK JAR 需要签名验证。 但是,Spring Boot 3 不支持针对 JVM 和本机映像上的提前 (AOT) 模式进行 JAR 签名验证。 有关详细信息,请参阅 将提前处理与 JVM 和 GraalVM 本机映像支持。
若要解决此问题,请禁用 JAR 签名验证。
在包含以下内容的 src/main/resources 中创建 custom.security 文件:
jdk.jar.disabledAlgorithms=MD2, MD5, RSA, DSA
如果使用 Maven,请添加以下配置:
<plugin> <groupId>org.graalvm.buildtools</groupId> <artifactId>native-maven-plugin</artifactId> <configuration> <buildArgs> <arg>-Djava.security.properties=src/main/resources/custom.security</arg> </buildArgs> </configuration> </plugin>
如果使用 Gradle,请添加以下配置:
graalvmNative { binaries { main { buildArgs('-Djava.security.properties=' + file("$rootDir/custom.security").absolutePath) } } }
学习 Spring Cloud Azure
有关显示使用情况的示例的完整列表,请参阅 Spring Cloud Azure 示例。