Spring Cloud Azure 開發人員指南
本文適用於:✅ 4.19.0 ✅ 5.19.0 版
Spring 是由 VMware 開發的開放原始碼應用程式架構,可提供簡化的模組化方法來建立 Java 應用程式。 Spring Cloud Azure 是開放原始碼專案,可提供與 Azure 的無縫 Spring 整合。
如需支援版本的詳細資訊,請參閱 Spring Versions Mapping。
取得說明
如果您有關於此檔的任何問題,請在下列其中一個 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 所提供的一些變更:
- 具有統一項目名稱、成品標識碼和屬性的整合開發體驗。
- 使用單一
spring-cloud-azure-dependencies
BOM 簡化相依性管理。 - Spring Initializr 上的擴充 Azure 支援,涵蓋 Kafka、事件中樞、Azure Cache for 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
。
此材料帳單 (BOM) 應該在 pom.xml 檔案的 <dependencyManagement>
區段中設定。 這可確保所有 Spring Cloud Azure 相依性都使用相同的版本。
如需此 BOM 所用版本的詳細資訊,請參閱 I Use的 Spring Cloud Azure 版本。
入門相依性
Spring Cloud Azure 入門版是一組方便的相依性描述元,可包含在您的應用程式中。 每個入門都包含開始使用其對應 Spring Cloud Azure 模組所需的所有相依性和可轉移性相依性。 這些入門可提升 Spring Boot 應用程式開發與 Azure 服務。
例如,如果您想要開始使用 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 | 搭配 Spring Security 使用 Microsoft Entra ID 的入門。 |
spring-cloud-azure-starter-active-directory-b2c | 搭配 Spring Security 使用 Azure Active Directory B2C 的入門。 |
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-一個執行器 | 使用 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 MySQLs 和 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) } } }
Learning Spring Cloud Azure
如需顯示使用量的完整範例清單,請參閱 Spring Cloud Azure 範例。