Поделиться через


Руководство разработчика Spring Cloud Для Azure

Эта статья относится к:✅ версии 4.19.0 ✅ версии 5.19.0

Spring — это платформа приложений с открытым кодом, разработанная VMware, которая предоставляет упрощенный модульный подход для создания приложений Java. Spring Cloud Azure — это проект с открытым исходным кодом, который обеспечивает простую интеграцию Spring с Azure.

Дополнительные сведения о поддерживаемых версиях см. в разделе Сопоставления версий Spring.

Получение справки

Если у вас есть вопросы об этой документации, создайте проблему GitHub в одном из следующих репозиториев GitHub. Запросы на вытягивание также приветствуются.

Репозитории GitHub Описание
azure/azure-sdk-for-java Этот репозиторий содержит исходный код.
MicrosoftDocs/azure-dev-docs Этот репозиторий содержит документацию.

Новые возможности версии 4.0 с 3.10.x

В этой документации рассматриваются изменения, внесенные в версии 4.0 с 3.10. Этот основной выпуск обеспечивает более высокую безопасность, более зависимые зависимости, поддержку готовности к работе и многое другое.

Кончик

Дополнительные сведения о миграции на 4.0 см. в руководстве по миграции 4.0.

В следующем списке приведены некоторые изменения, которые предоставляет Azure Spring Cloud 4.0:

  • Единый интерфейс разработки с унифицированным именем проекта, идентификатором артефакта и свойствами.
  • Упрощенное управление зависимостями с помощью одного spring-cloud-azure-dependencies BOM.
  • Расширенная поддержка Azure на Spring Initializr, чтобы охватывать Kafka, Центры событий, кэш Azure для Redis и конфигурацию приложений Azure.
  • Переключение зависимостей модуля Spring для удаления избыточных слоев и запутанности.
  • Поддержка управляемого удостоверения для конфигурации приложений Azure, Центров событий, служебной шины, Azure Cosmos DB, Key Vault, BLOB-объектов хранилища и очереди хранилища.
  • Постоянная поддержка методов проверки подлинности в базовом пакете SDK Azure из библиотек Spring, таких как маркер SAS и проверка подлинности учетных данных маркера с помощью служебной шины и Центров событий.
  • Цепочка учетных данных теперь включена по умолчанию, позволяя приложениям получать учетные данные из свойств приложения, переменных среды, управляемых удостоверений, УДостоверений и т. д. Дополнительные сведения см. в разделе DefaultAzureCredential клиентской библиотеки удостоверений Azure для Java.
  • Детализированный контроль доступа на уровне ресурса (например, очереди служебной шины), чтобы обеспечить более эффективное управление безопасностью и соблюдение ИТ-политик.
  • Дополнительные варианты, предоставляемые в spring-idiomatic, с помощью улучшенного покрытия автоматической настройки клиентов пакета SDK Azure для синхронных и асинхронных сценариев.
  • Добавлены индикаторы работоспособности для конфигурации приложений Azure, Центров событий, Azure Cosmos DB, Key Vault, BLOB-объектов хранилища, очереди хранилища и файла хранилища.
  • Поддержка Spring Cloud Sleuth для всех пакетов SDK azure на основе HTTP.

Руководство по миграции для версии 4.0

Дополнительные сведения о миграции на 4.0 см. в руководстве по миграции 4.0.

Начало работы

Настройка зависимостей

Счет материалов (BOM)

Если вы используете Maven, добавьте BOM в файл pom.xml в разделе dependencyManagement, как показано в следующем примере. При использовании BOM вам не нужно указывать версии для любой из зависимостей Maven, так как управление версиями делегировано ВМ.

<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 следующим образом:

  • Используйте встроенную поддержку BOM Gradle, добавив зависимости, как показано в следующем примере:

    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 и импортируйте BOM в dependencyManagement, как показано в следующем примере:

    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) должен быть настроен в разделе <dependencyManagement> файла pom.xml. Это гарантирует, что все зависимости Azure Spring Cloud используют одну и ту же версию. Дополнительные сведения о версии, используемой для этого BOM, см. в какой версии Spring Cloud Azure следует использовать.

Начальные зависимости

Spring Cloud Azure Starters — это набор удобных дескрипторов зависимостей для включения в приложение. Каждый начальный элемент содержит все зависимости и транзитивные зависимости, необходимые для начала использования соответствующего модуля Azure Spring Cloud. Эти начальные средства повышают разработку приложений 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 Начало использования идентификатора Microsoft Entra с 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-secret Начало использования секретов 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 Начало использования BLOB-объекта службы хранилища Azure.
spring-cloud-azure-starter-storage-file-share Начало использования общей папки службы хранилища Azure.
spring-cloud-azure-starter-storage-queue Начальный элемент для использования очереди службы хранилища Azure.
spring-cloud-azure-starter-actuator Начальный элемент для использования Actuator Spring Boot, который предоставляет готовые к работе функции.

В следующей таблице перечислены начальные средства поддержки Spring Data:

Имя Описание
spring-cloud-azure-starter-data-cosmos Начало использования Spring Data для Azure Cosmos DB.

В следующей таблице перечислены начальные средства поддержки Spring Integration:

Имя Описание
spring-cloud-azure-starter-integration-eventhubs Начало использования Центров событий Azure и интеграции Spring.
spring-cloud-azure-starter-integration-servicebus Начальная версия для использования служебной шины Azure и Spring Integration.
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 Начальные элементы для использования Azure MySQLs и JDBC с помощью проверки подлинности Microsoft Entra.

В следующей таблице перечислены начальные средства поддержки PostgreSQL:

Имя Описание
spring-cloud-azure-starter-jdbc-postgresql Начальные элементы для использования Azure PostgreSQL и JDBC с помощью проверки подлинности Microsoft Entra.

Настройка Spring Boot 3

Для AZURE SDK требуется проверка подписи. Однако Spring Boot 3 не поддерживает проверку подписи JAR для предварительного режима (AOT) в JVM и для собственных образов. Дополнительные сведения см. в статье Использование предварительной обработки с помощью JVM и поддержки собственных образов GraalVM.

Чтобы устранить эту проблему, отключите проверку подписи JAR.

  1. Создайте файл custom.security в src/main/resources со следующим содержимым:

    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)
        }
      }
    }
    

Обучение Spring Cloud Azure

Полный список примеров, демонстрирующих использование, см. в разделе Примеры Azure Spring Cloud.