Compartir a través de


Guía para desarrolladores de Spring Cloud para desarrolladores de Azure

Este artículo se aplica a:✅ versión 4.19.0 ✅ versión 5.19.0

Spring es un marco de aplicaciones de código abierto desarrollado por VMware que proporciona un enfoque simplificado y modular para crear aplicaciones Java. Spring Cloud Azure es un proyecto de código abierto que proporciona una integración perfecta de Spring con Azure.

Para obtener más información sobre las versiones admitidas, consulte asignación de versiones de Spring.

Obtener ayuda

Si tiene alguna pregunta sobre esta documentación, cree un problema de GitHub en uno de los siguientes repositorios de GitHub. También se admiten solicitudes de incorporación de cambios.

Repositorios de GitHub Descripción
azure/azure-sdk-for-java Este repositorio contiene el código fuente.
microsoftDocs/azure-dev-docs Este repositorio contiene la documentación.

Novedades de la versión 4.0 desde la versión 3.10.x

En esta documentación se tratan los cambios realizados en la versión 4.0 desde la versión 3.10. Esta versión principal aporta una mejor seguridad, dependencias más ajustadas, compatibilidad con la preparación de producción y mucho más.

Propina

Para obtener más información sobre la migración a la versión 4.0, consulte Guía de migración para la versión 4.0.

En la lista siguiente se resumen algunos de los cambios que proporciona Spring Cloud Azure 4.0:

  • Una experiencia de desarrollo unificada, con el nombre de proyecto unificado, el identificador de artefacto y las propiedades.
  • Administración simplificada de dependencias mediante una sola spring-cloud-azure-dependencies BOM.
  • Compatibilidad expandida de Azure en Spring Initializr para cubrir Kafka, Event Hubs, Azure Cache for Redis y Azure App Configuration.
  • Rediseñó las dependencias del módulo Spring para quitar capas y entrelazamiento excesivos.
  • Compatibilidad de identidad administrada con Azure App Configuration, Event Hubs, Service Bus, Azure Cosmos DB, Key Vault, Storage Blob y Cola de Storage.
  • Compatibilidad continua con los métodos de autenticación en el SDK de Azure subyacente de nuestras bibliotecas de Spring, como el token de SAS y la autenticación de credenciales de token con Service Bus y Event Hubs.
  • La cadena de credenciales ahora está habilitada de forma predeterminada, lo que permite a las aplicaciones obtener credenciales de las propiedades de la aplicación, las variables de entorno, la identidad administrada, los IDE, etc. Para más información, consulte la sección DefaultAzureCredential de biblioteca cliente de Azure Identity para Java.
  • Control de acceso pormenorizado en el nivel de recurso (como la cola de Service Bus) para permitir una mejor gobernanza de seguridad y cumplimiento de las directivas de TI.
  • Más opciones expuestas de forma idiomática de Spring a través de una mejor cobertura de configuración automática de los clientes del SDK de Azure para escenarios sincrónicos y asincrónicos.
  • Se han agregado indicadores de estado para Azure App Configuration, Event Hubs, Azure Cosmos DB, Key Vault, Storage Blob, Storage Queue y Storage File.
  • Compatibilidad de Spring Cloud Sleuth con todos los SDK de Azure basados en HTTP.

Guía de migración para la versión 4.0

Para obtener más información sobre la migración a la versión 4.0, consulte Guía de migración para la versión 4.0.

Empezar

Configuración de dependencias

Lista de materiales (BOM)

Si usa Maven, agregue la lista de materiales al archivo pom.xml en la sección dependencyManagement, como se muestra en el ejemplo siguiente. Cuando se usa la lista de materiales, no es necesario especificar versiones para ninguna de las dependencias de Maven porque el control de versiones se delega en la lista de materiales.

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

Con Gradle, puede importar la spring-cloud-azure-dependencies BOM de las maneras siguientes:

  • Use la compatibilidad nativa de BoM de Gradle agregando dependencias como se muestra en el ejemplo siguiente:

    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 el complemento io.spring.dependency-management e importe la boM en dependencyManagement, como se muestra en el ejemplo siguiente:

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

Para obtener más información, consulte Guía de referencia del complemento Gradle de Spring Boot.

Nota

Si usa Spring Boot 2.x, asegúrese de establecer la versión de spring-cloud-azure-dependencies en 4.19.0. Esta lista de materiales (BOM) debe configurarse en la sección <dependencyManagement> del archivo pom.xml. Esto garantiza que todas las dependencias de Azure de Spring Cloud usen la misma versión. Para obtener más información sobre la versión usada para esta lista de materiales, consulte qué versión de Spring Cloud Azure debería usar.

Dependencias de inicio

Spring Cloud Azure Starters es un conjunto de descriptores de dependencia convenientes que se van a incluir en la aplicación. Cada inicio contiene todas las dependencias y dependencias transitivas necesarias para empezar a usar su módulo de Azure de Spring Cloud correspondiente. Estos inicios aumentan el desarrollo de aplicaciones de Spring Boot con servicios de Azure.

Por ejemplo, si desea empezar a usar Spring y Azure Cosmos DB para la persistencia de datos, incluya la dependencia spring-cloud-azure-starter-cosmos en el proyecto.

En la tabla siguiente se enumeran los inicios de aplicaciones proporcionados por Spring Cloud Azure en el grupo com.azure.spring:

Nombre Descripción
spring-cloud-azure-starter El inicio principal, incluida la compatibilidad con la configuración automática.
spring-cloud-azure-starter-active-directory El inicio para usar microsoft Entra ID con Spring Security.
spring-cloud-azure-starter-active-directory-b2c El inicio para usar Azure Active Directory B2C con Spring Security.
spring-cloud-azure-starter-appconfiguration El inicio para usar Azure App Configuration.
spring-cloud-azure-starter-cosmos El inicio para usar Azure Cosmos DB.
spring-cloud-azure-starter-eventhubs El inicio para usar Azure Event Hubs.
spring-cloud-azure-starter-keyvault Inicio para usar Azure Key Vault.
spring-cloud-azure-starter-keyvault-secrets El inicio para usar secretos de Azure Key Vault.
spring-cloud-azure-starter-keyvault-certificates El inicio para usar certificados de Azure Key Vault.
spring-cloud-azure-starter-servicebus El inicio para usar Azure Service Bus.
spring-cloud-azure-starter-servicebus-jms El inicio para usar Azure Service Bus y JMS.
spring-cloud-azure-starter-storage El inicio para usar Azure Storage.
spring-cloud-azure-starter-storage-blob El inicio para usar Azure Storage Blob.
spring-cloud-azure-starter-storage-file-share El inicio para usar el recurso compartido de archivos de Azure Storage.
spring-cloud-azure-starter-storage-queue El inicio para usar la cola de Azure Storage.
spring-cloud-azure-starter-actuador El inicio para usar el accionador de Spring Boot, que proporciona características listas para producción.

En la tabla siguiente se enumeran los inicios para la compatibilidad con Spring Data:

Nombre Descripción
spring-cloud-azure-starter-data-cosmos El inicio para usar Spring Data para Azure Cosmos DB.

En la tabla siguiente se enumeran los inicios para la compatibilidad con Spring Integration:

Nombre Descripción
spring-cloud-azure-starter-integration-eventhubs El inicio para usar Azure Event Hubs e Integración de Spring.
spring-cloud-azure-starter-integration-servicebus El inicio para usar Azure Service Bus e Integración de Spring.
spring-cloud-azure-starter-integration-storage-queue Inicio para usar La cola de Azure Storage e Integración de Spring.

En la tabla siguiente se enumeran los inicios para la compatibilidad con Spring Cloud Stream:

Nombre Descripción
spring-cloud-azure-starter-stream-eventhubs Los inicios para usar Azure Event Hubs y Spring Cloud Stream Binder.
spring-cloud-azure-starter-stream-servicebus El inicio para usar Azure Service Bus y Spring Cloud Stream Binder.

En la tabla siguiente se enumeran los inicios para la compatibilidad con MySQL:

Nombre Descripción
spring-cloud-azure-starter-jdbc-mysql Los inicios para usar Azure MySQLs y JDBC a través de la autenticación de Microsoft Entra.

En la tabla siguiente se enumeran los inicios para la compatibilidad con PostgreSQL:

Nombre Descripción
spring-cloud-azure-starter-jdbc-postgresql Los inicios para usar Azure PostgreSQL y JDBC a través de la autenticación de Microsoft Entra.

Configuración de Spring Boot 3

Los JAR del SDK de Azure requieren la comprobación de firmas. Sin embargo, Spring Boot 3 no admite la comprobación de firmas JAR para el modo de antemano (AOT) en una JVM y para imágenes nativas. Para obtener más información, consulte Uso del procesamiento anticipado con el de JVM y compatibilidad con imágenes nativas de GraalVM.

Para resolver este problema, deshabilite la comprobación de la firma JAR.

  1. Cree un archivo de custom.security en src/main/resources con el siguiente contenido:

    jdk.jar.disabledAlgorithms=MD2, MD5, RSA, DSA
    
  2. Si usa Maven, agregue la siguiente configuración:

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

    Si usa Gradle, agregue la siguiente configuración:

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

Aprendizaje de Spring Cloud en Azure

Para obtener una lista completa de ejemplos que muestran el uso, consulte Ejemplos de Azure de Spring Cloud.