Compartilhar via


Guia do desenvolvedor do Spring Cloud Azure

Este artigo se aplica a:✅ versão 4.19.0 ✅ versão 5.19.0

O Spring é uma estrutura de aplicativos de software livre desenvolvida pelo VMware que fornece uma abordagem modular simplificada para criar aplicativos Java. O Spring Cloud Azure é um projeto de software livre que fornece integração perfeita do Spring com o Azure.

Para obter mais informações sobre versões com suporte, consulte de mapeamento de versões do Spring .

Obter ajuda

Se você tiver dúvidas sobre essa documentação, crie um problema do GitHub em um dos seguintes repositórios do GitHub. Solicitações de pull também são bem-vindas.

Repositórios do GitHub Descrição
do Azure/azure-sdk-for-java Esse repositório contém o código-fonte.
MicrosoftDocs/azure-dev-docs Esse repositório contém a documentação.

Novidades na versão 4.0 desde 3.10.x

Esta documentação aborda as alterações feitas na 4.0 desde 3.10. Esta versão principal traz melhor segurança, dependências mais enxutas, suporte para preparação para produção e muito mais.

Ponta

Para obter mais informações sobre como migrar para a 4.0, consulte Guia de Migração para 4.0.

A lista a seguir resume algumas das alterações que o Spring Cloud Azure 4.0 fornece:

  • Uma experiência de desenvolvimento unificada, com nome de projeto unificado, ID de artefato e propriedades.
  • Gerenciamento simplificado de dependência usando um único spring-cloud-azure-dependencies BOM.
  • Suporte expandido do Azure no Spring Initializr para cobrir Kafka, Hubs de Eventos, Cache do Azure para Redis e Configuração de Aplicativos do Azure.
  • Dependências do módulo Spring rearquitecadas para remover camadas em excesso e emaranhamento.
  • Suporte à Identidade Gerenciada para Configuração de Aplicativos do Azure, Hubs de Eventos, Barramento de Serviço, Azure Cosmos DB, Key Vault, Blob de Armazenamento e Fila de Armazenamento.
  • Suporte contínuo para métodos de autenticação no SDK do Azure subjacente de nossas bibliotecas spring, como token SAS e autenticação de credenciais de token com o Barramento de Serviço e Hubs de Eventos.
  • A cadeia de credenciais agora está habilitada por padrão, permitindo que os aplicativos obtenham credenciais de propriedades do aplicativo, variáveis de ambiente, identidade gerenciada, IDEs e assim por diante. Para obter mais informações, consulte a seção DefaultAzureCredential da biblioteca de clientes Identidade do Azure para Java.
  • Controle de acesso granular no nível de recurso (como fila do Barramento de Serviço) para habilitar uma melhor governança de segurança e adesão às políticas de TI.
  • Mais opções expostas de uma maneira spring-idiomatica por meio de uma cobertura de configuração automática aprimorada de clientes do SDK do Azure para cenários síncronos e assíncronos.
  • Foram adicionados indicadores de integridade para a Configuração de Aplicativos do Azure, Hubs de Eventos, Azure Cosmos DB, Key Vault, Blob de Armazenamento, Fila de Armazenamento e Arquivo de Armazenamento.
  • Suporte ao Spring Cloud Sleuth para todos os SDKs do Azure baseados em HTTP.

Guia de migração para 4.0

Para obter mais informações sobre como migrar para a 4.0, consulte Guia de Migração para 4.0.

Introdução

Configurando dependências

Cobrança de materiais (BOM)

Se você usar o Maven, adicione o BOM ao arquivo pom.xml na seção dependencyManagement, conforme mostrado no exemplo a seguir. Ao usar o BOM, você não precisa especificar versões para nenhuma das dependências do Maven porque o controle de versão é delegado ao 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>

Com o Gradle, você pode importar o BOM spring-cloud-azure-dependencies das seguintes maneiras:

  • Use o suporte bom nativo do Gradle adicionando dependências, conforme mostrado no exemplo a seguir:

    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}"))
    }
    
  • Use o plug-in io.spring.dependency-management e importe o BOM em dependencyManagement, conforme mostrado no exemplo a seguir:

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

Para obter mais informações, consulte Guia de Referência do Plug-in do Spring Boot Gradle.

Nota

Se você estiver usando o Spring Boot 2.x, defina a versão spring-cloud-azure-dependencies como 4.19.0. Essa Nota de Material (BOM) deve ser configurada na seção <dependencyManagement> do arquivo pom.xml. Isso garante que todas as dependências do Spring Cloud Azure estejam usando a mesma versão. Para obter mais informações sobre a versão usada para este BOM, consulte qual versão do Spring Cloud Azure devo usar.

Dependências de inicialização

O Spring Cloud Azure Starters é um conjunto de descritores de dependência convenientes a serem incluídos em seu aplicativo. Cada iniciador contém todas as dependências e dependências transitivas necessárias para começar a usar o módulo correspondente do Spring Cloud Azure. Esses iniciados impulsionam o desenvolvimento de aplicativos do Spring Boot com os serviços do Azure.

Por exemplo, se você quiser começar a usar o Spring e o Azure Cosmos DB para persistência de dados, inclua a dependência spring-cloud-azure-starter-cosmos em seu projeto.

A tabela a seguir lista os iniciadores de aplicativos fornecidos pelo Spring Cloud Azure no grupo com.azure.spring:

Nome Descrição
spring-cloud-azure-starter O início principal, incluindo o suporte à configuração automática.
spring-cloud-azure-starter-active-directory O início para usar a ID do Microsoft Entra com o Spring Security.
spring-cloud-azure-starter-active-directory-b2c O início para usar o Azure Active Directory B2C com o Spring Security.
spring-cloud-azure-starter-appconfiguration O início para usar a Configuração de Aplicativos do Azure.
spring-cloud-azure-starter-cosmos O início para usar o Azure Cosmos DB.
spring-cloud-azure-starter-eventhubs O início para usar os Hubs de Eventos do Azure.
spring-cloud-azure-starter-keyvault O Starter para usar o Azure Key Vault.
spring-cloud-azure-starter-keyvault-secrets O início para usar os Segredos do Azure Key Vault.
spring-cloud-azure-starter-keyvault-certificates O início para usar certificados do Azure Key Vault.
spring-cloud-azure-starter-servicebus O início para usar o Barramento de Serviço do Azure.
spring-cloud-azure-starter-servicebus-jms O início para usar o Barramento de Serviço do Azure e o JMS.
spring-cloud-azure-starter-storage O início para usar o Armazenamento do Azure.
spring-cloud-azure-starter-storage-blob O início para usar o Blob de Armazenamento do Azure.
spring-cloud-azure-starter-storage-file-share O início para usar o Compartilhamento de Arquivos de Armazenamento do Azure.
spring-cloud-azure-starter-storage-queue O início para usar a Fila de Armazenamento do Azure.
spring-cloud-azure-starter-actuator O início para usar o Actuator do Spring Boot, que fornece recursos prontos para produção.

A tabela a seguir lista os iniciantes para o suporte ao Spring Data:

Nome Descrição
spring-cloud-azure-starter-data-cosmos O início para usar o Spring Data para o Azure Cosmos DB.

A tabela a seguir lista os iniciantes para o suporte ao Spring Integration:

Nome Descrição
spring-cloud-azure-starter-integration-eventhubs O início para usar os Hubs de Eventos do Azure e o Spring Integration.
spring-cloud-azure-starter-integration-servicebus O início para usar o Barramento de Serviço do Azure e o Spring Integration.
spring-cloud-azure-starter-integration-storage-queue O início para usar a Fila de Armazenamento do Azure e a Integração do Spring.

A tabela a seguir lista os iniciantes para o suporte ao Spring Cloud Stream:

Nome Descrição
spring-cloud-azure-starter-stream-eventhubs Os iniciantes para usar os Hubs de Eventos do Azure e o Spring Cloud Stream Binder.
spring-cloud-azure-starter-stream-servicebus O início para usar o Barramento de Serviço do Azure e o Spring Cloud Stream Binder.

A tabela a seguir lista os iniciantes para suporte ao MySQL:

Nome Descrição
spring-cloud-azure-starter-jdbc-mysql Os iniciantes para usar o Azure MySQLs e o JDBC por meio da autenticação do Microsoft Entra.

A tabela a seguir lista os iniciantes para suporte ao PostgreSQL:

Nome Descrição
spring-cloud-azure-starter-jdbc-postgresql Os iniciantes para usar o PostgreSQL do Azure e o JDBC por meio da autenticação do Microsoft Entra.

Configurando o Spring Boot 3

Os JARs do SDK do Azure exigem a verificação de assinatura. No entanto, o Spring Boot 3 não dá suporte à verificação de assinatura JAR para o modo AOT (antecipada) em uma JVM e para imagens nativas. Para obter mais informações, consulte Usando o processamento antecipada com o JVM e suporte à imagem nativa GraalVM.

Para resolver esse problema, desabilite a verificação da assinatura JAR.

  1. Crie um arquivo custom.security em src/main/resources com o seguinte conteúdo:

    jdk.jar.disabledAlgorithms=MD2, MD5, RSA, DSA
    
  2. Se você estiver usando o Maven, adicione a seguinte configuração:

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

    Se você estiver usando o Gradle, adicione a seguinte configuração:

    graalvmNative {
      binaries {
        main {
          buildArgs('-Djava.security.properties=' + file("$rootDir/custom.security").absolutePath)
        }
      }
    }
    

Learning Spring Cloud Azure

Para obter uma lista completa de exemplos que mostram o uso, consulte Exemplos do Spring Cloud Azure.