共用方式為


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 簽章驗證。

  1. src/main/resources 中建立 custom.security 檔案,其中包含下列內容:

    jdk.jar.disabledAlgorithms=MD2, MD5, RSA, DSA
    
  2. 如果您使用 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 範例