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 endependencyManagement
, 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.
Cree un archivo de custom.security en src/main/resources con el siguiente contenido:
jdk.jar.disabledAlgorithms=MD2, MD5, RSA, DSA
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.