Guía de migración para Spring Cloud Azure 4.0

Esta guía ayuda con la migración a Spring Cloud Azure 4.0 desde bibliotecas heredadas de Azure Spring.

Introducción

Llamaremos a bibliotecas cuyo identificador de grupo y identificador de artefacto siguen el patrón com.azure.spring:spring-cloud-azure-* de las bibliotecas modernas y las que tienen el patrón com.azure.spring:azure-spring-boot-*, com.azure.spring:azure-spring-cloud-*o com.azure.spring:azure-spring-integration-* las bibliotecas heredadas .

Esta guía se centrará en comparaciones en paralelo para configuraciones similares entre las bibliotecas modernas y heredadas.

Se supone que está familiarizado con com.azure.spring:azure-spring-boot-*, com.azure.spring:azure-spring-cloud-* o com.azure.spring:azure-spring-integration-* el paquete.

Si no está familiarizado con las bibliotecas de Spring Cloud Azure 4.0, consulte la guía para desarrolladores de Azure de Spring Cloud en lugar de esta guía.

Ventajas de la migración

Una pregunta natural que se debe plantear al considerar si adoptar una nueva versión o biblioteca es sus ventajas. A medida que Azure ha madurado y ha sido adoptado por un grupo de desarrolladores más diverso, nos hemos centrado en aprender los patrones y prácticas para admitir mejor la productividad de los desarrolladores y comprender las brechas que tienen las bibliotecas de Azure de Spring Cloud.

Hubo varias áreas de comentarios coherentes expresadas en las bibliotecas de Azure de Spring Cloud. Lo más importante es que las bibliotecas de diferentes servicios de Azure no han habilitado el conjunto completo de configuraciones. Además, la incoherencia de la nomenclatura del proyecto, los identificadores de artefacto, las versiones y las configuraciones hicieron que la curva de aprendizaje se empinó.

Para mejorar la experiencia de desarrollo en las bibliotecas de Azure de Spring Cloud, se introdujo un conjunto de directrices de diseño para garantizar que las bibliotecas de Azure de Spring Cloud tengan una sensación natural e idiomática con respecto al ecosistema de Spring. Encontrará más detalles en el documento de diseño para aquellos interesados.

Spring Cloud Azure 4.0 proporciona la experiencia compartida entre bibliotecas que se integran con diferentes proyectos de Spring, como Spring Boot, Spring Integration, Spring Cloud Stream, etc. La experiencia compartida incluye:

  • Una lista de materiales unificada para incluir todas las bibliotecas de Spring Cloud Azure 4.0.
  • Una convención de nomenclatura coherente para los artefactos.
  • Una manera unificada de configurar las credenciales, el proxy, el reintento, el entorno en la nube y la configuración de la capa de transporte.
  • Admite todos los métodos de autenticación que admite un servicio de Azure o el SDK de servicio de Azure.

Información general

Esta guía de migración consta de las secciones siguientes:

  • Cambios de nomenclatura para Spring Cloud Azure 4.0
  • Cambios en los artefactos: cambio de nombre, agregado o eliminado
  • Cambios de dependencia
  • Cambios de autenticación
  • Propiedades de configuración
  • Cambios importantes en las API
  • Cambios en la biblioteca

Cambios de nomenclatura

Nunca ha habido un nombre coherente o oficial para llamar a todas las bibliotecas de Azure de Spring Cloud. Algunos de ellos fueron llamados Azure Spring Boot y algunos de ellos Spring on Azure. Desde la versión 4.0, empezamos a usar el nombre Spring Cloud Azure del proyecto para representar todas las bibliotecas de Azure Spring.

BOM

Usamos para enviar dos BOM para nuestras bibliotecas, y azure-spring-boot-bomazure-spring-cloud-dependencies, pero combinamos estas dos BOM en una BOM desde la versión 4.0, .spring-cloud-azure-dependencies Agregue una entrada en la dependencyManagement sección del proyecto para beneficiarse de la administración de dependencias.

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>com.azure.spring</groupId>
      <artifactId>spring-cloud-azure-dependencies</artifactId>
      <version>4.11.0</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

Nota

Si usa Spring Boot 3.x, asegúrese de establecer la spring-cloud-azure-dependencies versión 5.5.0en . Para más información sobre la spring-cloud-azure-dependencies versión, consulte Qué versión de Spring Cloud Azure debería usar.

Cambios en los artefactos: cambio de nombre, agregado o eliminado

Los identificadores de grupo son los mismos para las bibliotecas de Azure modernas y heredadas de Spring Cloud. Todos son com.azure.spring. Los identificadores de artefacto para las bibliotecas modernas de Azure de Spring Cloud han cambiado. Según el proyecto de Spring al que pertenece, Spring Boot, Spring Integration o Spring Cloud Stream, el patrón de identificadores de artefacto podría ser spring-cloud-azure-starter-[service], spring-integration-azure-[service]o spring-cloud-azure-stream-binder-[service]. Los inicios heredados para cada uno tienen un identificador de artefacto siguiendo el patrón azure-spring-*. Esto proporciona un medio rápido y accesible para ayudar a comprender, de un vistazo, ya sea que use los inicios modernos o heredados.

En el proceso de desarrollo de Spring Cloud Azure 4.0, hemos cambiado el nombre de algunos artefactos para que sigan las nuevas convenciones de nomenclatura, elimine algunos artefactos para que la funcionalidad se pueda colocar en un artefacto más adecuado y hemos agregado algunos artefactos nuevos para atender mejor algunos escenarios.

En la tabla siguiente se muestran las asignaciones entre el identificador de artefacto heredado y el identificador de artefacto moderno:

Identificador de artefacto heredado Identificador de artefacto moderno Descripción
azure-spring-boot-starter spring-cloud-azure-starter Este artefacto se ha eliminado con toda la funcionalidad que se combina en el nuevo spring-cloud-azure-starter artefacto.
azure-spring-boot-starter-active-directory spring-cloud-azure-starter-active-directory Se ha cambiado el nombre del artefacto.
azure-spring-boot-starter-active-directory-b2c spring-cloud-azure-starter-active-directory-b2c Se ha cambiado el nombre del artefacto.
azure-spring-boot-starter-cosmos spring-cloud-azure-starter-data-cosmos Se ha cambiado el nombre del artefacto para agregar data, que indica el uso de Spring Data Azure Cosmos DB.
azure-spring-boot-starter-keyvault-certificates no aplicable No se incluye en esta versión, pero se admitirá en versiones posteriores.
azure-spring-boot-starter-keyvault-secrets spring-cloud-azure-starter-keyvault-secrets Se ha cambiado el nombre del artefacto.
azure-spring-boot-starter-servicebus-jms spring-cloud-azure-starter-servicebus-jms Se ha cambiado el nombre del artefacto.
azure-spring-boot-starter-storage spring-cloud-azure-starter-storage-blob
spring-cloud-azure-starter-storage-file-share
El artefacto heredado contiene la funcionalidad del blob de almacenamiento y el recurso compartido de archivos, que se ha convertido en dos artefactos independientes en 4.0, spring-cloud-azure-starter-storage-blob y spring-cloud-azure-starter-storage-file-share.
azure-spring-boot no aplicable Este artefacto se ha eliminado con toda la funcionalidad que se combina en el nuevo spring-cloud-azure-autoconfigure artefacto.
azure-spring-cloud-autoconfigure no aplicable Este artefacto se ha eliminado con toda la funcionalidad que se combina en el nuevo spring-cloud-azure-autoconfigure artefacto.
azure-spring-cloud-context no aplicable Este artefacto se ha eliminado con toda la funcionalidad que se combina en los artefactos nuevos spring-cloud-azure-autoconfigure y spring-cloud-azure-resourcemanager .
azure-spring-cloud-messaging spring-messaging-azure Se ha quitado la anotación del agente de escucha de mensajería.
azure-spring-cloud-starter-cache no aplicable Este artefacto se ha eliminado, para usar redis, basta con agregar spring-boot-starter-data-redis, spring-boot-starter-cache, spring-cloud-azure-resourcemanager y spring-cloud-azure-starter. Para más información sobre el uso, consulte Compatibilidad con Spring Cloud Azure Redis.
azure-spring-cloud-starter-eventhubs-kafka no aplicable Este artefacto se ha eliminado, para usar kafka, simplemente agregue spring kafka, spring-cloud-azure-resourcemanager y spring-cloud-azure-starter. Para más información sobre el uso, consulte Compatibilidad de Spring Cloud con Azure Kafka.
azure-spring-cloud-starter-eventhubs spring-cloud-azure-starter-integration-eventhubs Se ha cambiado el nombre del artefacto para agregar integration, que indica el uso de Spring Integration con Event Hubs.
azure-spring-cloud-starter-servicebus spring-cloud-azure-starter-integration-servicebus Se ha cambiado el nombre del artefacto para agregar integration, que indica el uso de Spring Integration con Service Bus.
azure-spring-cloud-starter-storage-queue spring-cloud-azure-starter-integration-storage-queue Se ha cambiado el nombre del artefacto para agregar integration, que indica el uso de Spring Integration with Storage Queue.
azure-spring-cloud-storage no aplicable Este artefacto se ha eliminado con todas las funcionalidades combinadas en el nuevo spring-cloud-azure-autoconfigure artefacto.
azure-spring-cloud-stream-binder-eventhubs spring-cloud-azure-stream-binder-eventhubs Este artefacto se ha refactorizado mediante un nuevo diseño, principalmente spring-cloud-azure-stream-binder-eventhubs y spring-cloud-azure-stream-binder-eventhubs-core.
azure-spring-cloud-stream-binder-service-core spring-cloud-azure-stream-binder-servicebus-core Se ha cambiado el nombre del artefacto.
azure-spring-cloud-stream-binder-servicebus-queue spring-cloud-azure-stream-binder-servicebus Este artefacto se ha eliminado con toda la funcionalidad que se combina en el spring-cloud-azure-stream-binder-servicebus artefacto.
azure-spring-cloud-stream-binder-servicebus-topic spring-cloud-azure-stream-binder-servicebus Este artefacto se ha eliminado con toda la funcionalidad que se combina en el spring-cloud-azure-stream-binder-servicebus artefacto.
azure-spring-integration-core spring-integration-azure-core Se ha cambiado el nombre del artefacto.
azure-spring-integration-eventhubs spring-integration-azure-eventhubs Cambie el nombre del artefacto.
azure-spring-integration-servicebus spring-integration-azure-servicebus Cambie el nombre del artefacto.
azure-spring-integration-storage-queue spring-integration-azure-storage-queue Cambie el nombre del artefacto.
no aplicable spring-cloud-azure-actuator El artefacto de Actuador de Azure de Spring Cloud recién agregado.
no aplicable spring-cloud-azure-actuator-autoconfigure El artefacto de autoconfiguración del accionador de Azure de Spring Cloud recién agregado, incluida la configuración automática para el accionador.
no aplicable spring-cloud-azure-autoconfigure Artefacto de configuración automática de Azure de Spring Cloud recién agregado, incluida toda la configuración automática para los clientes del SDK, la compatibilidad con Spring Security, la compatibilidad con Spring Data y la compatibilidad con Spring Integration.
no aplicable spring-cloud-azure-core Se ha agregado recientemente el artefacto de Spring Cloud Azure Core, incluida toda la funcionalidad básica.
no aplicable spring-cloud-azure-resourcemanager Artefacto de Resource Manager recién agregado. Es la biblioteca principal que usa Azure Resource Manager para leer metadatos y crear recursos.
no aplicable spring-cloud-azure-service Se ha agregado recientemente el artefacto de Spring Cloud Azure Service, incluidas las abstracciones para los servicios de Azure.
no aplicable spring-cloud-azure-starter-appconfiguration Se acaba de agregar el inicio para usar Azure App Configuration cliente del SDK.
no aplicable spring-cloud-azure-starter-cosmos Se acaba de agregar el inicio para usar el cliente del SDK de Azure Cosmos DB.
no aplicable spring-cloud-azure-starter-eventhubs Se acaba de agregar el inicio para usar Azure Event Hubs cliente del SDK.
no aplicable spring-cloud-azure-starter-servicebus Se acaba de agregar el inicio para usar Azure Service Bus cliente del SDK.
no aplicable spring-cloud-azure-starter-storage-blob Se ha agregado recientemente el inicio para usar el cliente del SDK de Blob de Azure Storage.
no aplicable spring-cloud-azure-starter-storage-file-share Se ha agregado recientemente el inicio para usar el cliente del SDK de Recursos compartidos de archivos de Azure Storage.
no aplicable spring-cloud-azure-starter-storage-queue Se ha agregado recientemente el inicio para usar el cliente del SDK de cola de Azure Storage.
no aplicable spring-cloud-azure-starter-stream-eventhubs Se acaba de agregar el inicio para usar Azure Event Hubs Spring Cloud Stream Binder.
no aplicable spring-cloud-azure-starter-stream-servicebus Inicio recién agregado para usar Azure Service Bus Spring Cloud Stream Binder
no aplicable spring-cloud-azure-stream-binder-eventhubs-core Artefacto principal de Spring Cloud Stream recién agregado para Azure Event Hubs.

Cambios en las dependencias

Algunas dependencias innecesarias se incluyeron en los artefactos heredados, que hemos quitado en las bibliotecas modernas de Spring Cloud Azure 4.0. Asegúrese de agregar las dependencias eliminadas manualmente al proyecto para evitar bloqueos.

Entre las bibliotecas que tienen cambios de dependencia se incluyen las siguientes:

Cambios de autenticación

Spring Cloud Azure 4.0 admite todos los métodos de autenticación que admite cada SDK de servicio de Azure. Permite configurar una credencial de token global, así como proporcionar la credencial de token en cada nivel de servicio. Pero no se requiere una credencial para configurar Spring Cloud Azure 4.0 porque puede aplicar la credencial almacenada en un entorno de desarrollo local o una identidad administrada en los servicios de Azure. Asegúrese de que a la entidad de seguridad se le ha concedido permiso suficiente para acceder a los recursos de Azure de destino.

Nota

Cuando se asignan roles a las entidades de seguridad para interactuar con los servicios de mensajería de Azure, se requieren los Data roles relacionados para realizar operaciones de mensajería. En el caso de las bibliotecas de azure Spring Apps Stream Event Hubs/Service Bus Binder, Contributor se requiere el rol cuando se necesita la función de creación automática de recursos. Para más información, consulte Roles integrados en Azure.

Una credencial encadenada, el DefaultAzureCredential bean se configura automáticamente de forma predeterminada y se usará en todos los componentes si no se especifica más información de autenticación. Para más información, consulte la sección DefaultAzureCredential de la biblioteca cliente de Azure Identity para Java.

Propiedades de configuración

Migración de propiedades

Hemos creado un archivo additional-spring-configuration-metadata.json para suavizar la migración de propiedades al usar con spring-boot-properties-migrator. En primer lugar, agregue el siguiente migrador de propiedades a la aplicación:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-properties-migrator</artifactId>
    <scope>runtime</scope>
</dependency>

O bien, si usa Gradle:

runtime("org.springframework.boot:spring-boot-properties-migrator")

Si ejecuta la aplicación, identificará las propiedades que ya no administra Spring Cloud Azure. Si hay un reemplazo, volverá a asignar temporalmente la propiedad por usted con una advertencia. Si no hay un reemplazo, un informe de errores le proporcionará más información. En cualquier caso, la configuración debe actualizarse y la dependencia se quitará una vez que haya actualizado la configuración.

Antes de continuar, es recomendable usar la característica de búsqueda del IDE para comprobar que no usa una de las propiedades que ha migrado en una prueba de integración.

Nota

Hemos cambiado muchas propiedades de configuración en este cambio. spring-boot-properties-migrator El uso de le ayudará a suavizar la migración.

Configuraciones globales

El moderno spring-cloud-azure-starter permite definir propiedades que se aplican a todos los SDK de Azure en el espacio de nombres spring.cloud.azure. Esta característica no se admite en el heredado azure-spring-boot-starter. Las configuraciones globales se pueden dividir en cinco categorías, que se muestran en la tabla siguiente:

Prefijo Descripción
spring.cloud.azure.client Configura los clientes de transporte debajo de cada SDK de Azure.
spring.cloud.azure.credential Configura cómo autenticarse con Azure Active Directory.
spring.cloud.azure.profile Configura el entorno de nube de Azure.
spring.cloud.azure.proxy Configura las opciones de proxy y se aplica a todos los clientes de Azure SDK.
spring.cloud.azure.retry Configura las opciones de reintento y se aplica a todos los clientes de Azure SDK. Las opciones de reintento han admitido parte de los SDK, no hay .spring.cloud.azure.cosmos.retry

Para obtener una lista completa de las configuraciones, consulte Propiedades de configuración de Azure de Spring Cloud.

Configuración de cada SDK

Para obtener más información sobre las opciones de configuración en el nivel del SDK, use los vínculos siguientes:

Cambios importantes en las API

Para obtener más información sobre los cambios importantes de la API en cada biblioteca, use los vínculos siguientes:

Cambios en la biblioteca

Los cambios importantes en cada biblioteca se presentan de la siguiente manera.

De azure-spring-boot-starter a spring-cloud-azure-starter

Esta guía está pensada para ayudar en la migración a spring-cloud-azure-starter de la versión 3 de azure-spring-boot-starter.

Para obtener información general, use los vínculos siguientes:

  • Para obtener información general sobre los cambios de la versión 4.0, consulte las secciones Introducción y Ventajas de migración .
  • Para obtener más información sobre los cambios de estrategia en la nomenclatura del proyecto, consulte la sección Cambios de nomenclatura.
  • Para obtener información sobre cómo usar una lista de materiales para todas las bibliotecas de Azure de Spring Cloud, consulte la sección BOM .
  • Para obtener información sobre cómo controlar la autenticación en Spring Cloud Azure 4.0, consulte la sección Cambios de autenticación .
  • Para obtener información sobre cómo aprovechar spring-boot-properties-migrator durante la migración, consulte la sección Configuración de cada SDK .
  • Para más información sobre los cambios de configuración globales y comunes, consulte la sección Configuraciones globales .

Cambios de dependencia

Algunas dependencias innecesarias se incluyeron en los artefactos heredados, que hemos quitado en las bibliotecas modernas de Spring Cloud Azure 4.0. Asegúrese de agregar las dependencias eliminadas manualmente al proyecto para evitar un bloqueo accidental.

En la tabla siguiente se muestran las dependencias quitadas:

Dependencias eliminadas Descripción
org.springframework.boot:spring-boot-starter-validation Incluya el iniciador de validación si desea usar el validador de hibernación.

De azure-spring-boot-starter-active-directory a spring-cloud-azure-starter-active-directory

Esta guía está pensada para ayudar a la migración a spring-cloud-azure-starter-active-directory desde la versión 3 de azure-spring-boot-starter-active-directory.

Para obtener información general, use los vínculos siguientes:

  • Para obtener información general sobre los cambios de la versión 4.0, consulte las secciones Introducción y Ventajas de migración .
  • Para obtener más información sobre los cambios de estrategia en la nomenclatura del proyecto, consulte la sección Cambios de nomenclatura.
  • Para obtener información sobre cómo usar una lista de materiales para todas las bibliotecas de Azure de Spring Cloud, consulte la sección BOM .
  • Para obtener información sobre cómo controlar la autenticación en Spring Cloud Azure 4.0, consulte la sección Cambios de autenticación .
  • Para obtener información sobre cómo aprovechar spring-boot-properties-migrator durante la migración, consulte la sección Configuración de cada SDK .
  • Para más información sobre los cambios de configuración globales y comunes, consulte la sección Configuraciones globales .

Cambios de dependencia

Se han quitado algunas dependencias innecesarias del artefacto heredado desde la biblioteca moderna de Spring Cloud Azure 4.0. Agregue estas dependencias eliminadas al proyecto para evitar un bloqueo accidental.

En la tabla siguiente se muestran las dependencias quitadas:

Dependencias eliminadas Descripción
com.fasterxml.jackson.core:jackson-databind Agregue esta dependencia al proyecto si es necesario.
io.projectreactor.netty:reactor-netty Agregue esta dependencia al proyecto si es necesario.
org.springframework.boot:spring-boot-starter-validation Agregue esta dependencia al proyecto si es necesario.
org.springframework.boot:spring-boot-starter-webflux Agregue esta dependencia al proyecto si es necesario.

Cambios en la configuración del SDK

En esta sección se incluyen los cambios sobre las propiedades agregadas, quitadas y modificadas.

  • Los dos puntos siguientes son los principales a los que prestar atención:
  1. El prefijo de todos los nombres de propiedad de configuración ha cambiado de azure.activedirectory a spring.cloud.azure.active-directory.
  2. Se agrega una nueva propiedad spring.cloud.azure.active-directory.enabled para habilitar o deshabilitar las características relacionadas con Azure AD. El valor predeterminado es false.

En la tabla siguiente se muestran las asignaciones de propiedades entre azure-spring-boot-starter-active-directory y spring-cloud-azure-starter-active-directory:

Propiedades heredadas Propiedades modernas
azure.activedirectory.app-id-uri spring.cloud.azure.active-directory.app-id-uri
azure.activedirectory.application-type spring.cloud.azure.active-directory.application-type
azure.activedirectory.authorization-clients spring.cloud.azure.active-directory.authorization-clients
azure.activedirectory.authorization-clients.AZURE_CLIENT_NAME.authorization-grant-type spring.cloud.azure.active-directory.authorization-clients.AZURE_CLIENT_NAME.authorization-grant-type
azure.activedirectory.authorization-clients.AZURE_CLIENT_NAME.on-demand spring.cloud.azure.active-directory.authorization-clients.AZURE_CLIENT_NAME.on-demand
azure.activedirectory.authorization-clients.AZURE_CLIENT_NAME.scopes spring.cloud.azure.active-directory.authorization-clients.AZURE_CLIENT_NAME.scopes
azure.activedirectory.authenticate-additional-parameters spring.cloud.azure.active-directory.authenticate-additional-parameters
azure.activedirectory.base-uri spring.cloud.azure.active-directory.profile.environment.active-directory-endpoint
azure.activedirectory.client-id spring.cloud.azure.active-directory.credential.client-id
azure.activedirectory.client-secret spring.cloud.azure.active-directory.credential.client-secret
azure.activedirectory.graph-membership-uri Consulte la tabla siguiente para obtener más información.
azure.activedirectory.jwt-connect-timeout spring.cloud.azure.active-directory.jwt-connect-timeout.
azure.activedirectory.jwt-read-timeout spring.cloud.azure.active-directory.jwt-read-timeout.
azure.activedirectory.jwt-size-limit spring.cloud.azure.active-directory.jwt-size-limit.
azure.activedirectory.jwk-set-cache-lifespan spring.cloud.azure.active-directory.jwk-set-cache-lifespan.
azure.activedirectory.jwk-set-cache-refresh-time spring.cloud.azure.active-directory.jwk-set-cache-refresh-time
azure.activedirectory.post-logout-redirect-uri spring.cloud.azure.active-directory.post-logout-redirect-uri
azure.activedirectory.session-stateless spring.cloud.azure.active-directory.session-stateless
azure.activedirectory.redirect-uri-template spring.cloud.azure.active-directory.redirect-uri-template
azure.activedirectory.resource-server.claim-to-authority-prefix-map spring.cloud.azure.active-directory.resource-server.claim-to-authority-prefix-map
azure.activedirectory.resource-server.principal-claim-name spring.cloud.azure.active-directory.resource-server.principal-claim-name
azure.activedirectory.tenant-id spring.cloud.azure.active-directory.profile.tenant-id
azure.activedirectory.user-group.allowed-group-ids spring.cloud.azure.active-directory.user-group.allowed-group-ids
azure.activedirectory.user-group.allowed-group-names spring.cloud.azure.active-directory.user-group.allowed-group-names
azure.activedirectory.user-name-attribute spring.cloud.azure.active-directory.user-name-attribute
  • El tipo de valor de las siguientes propiedades se cambia de long a Duration:

    • jwt-connect-timeout
    • jwt-read-timeout
    • jwk-set-cache-lifespan
    • jwk-set-cache-refresh-time.
  • Se quitan las propiedades siguientes:

    • azure.activedirectory.allow-telemetry
    • azure.activedirectory.user-group.enable-full-list
    • azure.activedirectory.graph-base-uri
    • azure.activedirectory.graph-membership-uri
  • Se agregan las siguientes propiedades:

    • spring.cloud.azure.active-directory.enabled
    • spring.cloud.azure.active-directory.profile.environment.microsoft-graph-endpoint
    • spring.cloud.azure.active-directory.user-group.use-transitive-members

Nota

La función de azure.activedirectory.graph-membership-uri se ha reemplazado por 2 propiedades: spring.cloud.azure.active-directory.profile.environment.microsoft-graph-endpoint y spring.cloud.azure.active-directory.user-group.use-transitive-members. La primera propiedad se usa para especificar el nombre de host y la segunda una marca para usar la ruta de acceso url: v1.0/me/memberOf o v1.0/me/transitiveMemberOf.

Estos son algunos ejemplos de migración:

  • Ejemplo 1. Caso 1

    • Para la versión heredada: azure.activedirectory.graph-membership-uri=https://graph.microsoft.com/v1.0/me/memberOf

    • Para los modernos: spring.cloud.azure.active-directory.profile.environment.microsoft-graph-endpoint=https://graph.microsoft.com/ + spring.cloud.azure.active-directory.user-group.use-transitive-members=false

  • Ejemplo 2. Caso 2

    • Para la versión heredada: azure.activedirectory.graph-membership-uri=https://graph.microsoft.com/v1.0/me/transitiveMemberOf

    • Para los modernos: spring.cloud.azure.active-directory.profile.environment.microsoft-graph-endpoint=https://graph.microsoft.com/ + spring.cloud.azure.active-directory.user-group.use-transitive-members=true

Cambios de API

En la tabla siguiente se muestran las asignaciones de clases de azure-spring-boot-starter-active-directory a spring-cloud-azure-starter-active-directory:

Clase heredada Clase moderna
com.azure.spring.aad.webapi.AADJwtBearerTokenAuthenticationConverter com.azure.spring.cloud.autoconfigure.aad.AadJwtBearerTokenAuthenticationConverter
com.azure.spring.aad.webapi.AADResourceServerProperties com.azure.spring.cloud.autoconfigure.aad.properties.AadResourceServerProperties
com.azure.spring.aad.webapi.AADResourceServerWebSecurityConfigurerAdapter com.azure.spring.cloud.autoconfigure.aad.AadResourceServerWebSecurityConfigurerAdapter
com.azure.spring.aad.webapp.AADWebSecurityConfigurerAdapter com.azure.spring.cloud.autoconfigure.aad.AadWebSecurityConfigurerAdapter
com.azure.spring.aad.webapp.AuthorizationClientProperties com.azure.spring.cloud.autoconfigure.aad.properties.AuthorizationClientProperties
com.azure.spring.aad.AADApplicationType com.azure.spring.cloud.autoconfigure.aad.properties.AadApplicationType
com.azure.spring.aad.AADAuthorizationGrantType com.azure.spring.cloud.autoconfigure.aad.properties.AadAuthorizationGrantType
com.azure.spring.aad.AADAuthorizationServerEndpoints com.azure.spring.cloud.autoconfigure.aad.properties.AadAuthorizationServerEndpoints
com.azure.spring.aad.AADClientRegistrationRepository com.azure.spring.cloud.autoconfigure.aad.AadClientRegistrationRepository
com.azure.spring.aad.AADTrustedIssuerRepository com.azure.spring.cloud.autoconfigure.aad.AadTrustedIssuerRepository
com.azure.spring.autoconfigure.aad.AADAppRoleStatelessAuthenticationFilter com.azure.spring.cloud.autoconfigure.aad.filter.AadAppRoleStatelessAuthenticationFilter
com.azure.spring.autoconfigure.aad.AADAuthenticationFilter com.azure.spring.cloud.autoconfigure.aad.filter.AadAuthenticationFilter
com.azure.spring.autoconfigure.aad.AADAuthenticationProperties com.azure.spring.cloud.autoconfigure.aad.properties.AadAuthenticationProperties
com.azure.spring.autoconfigure.aad.UserPrincipal com.azure.spring.cloud.autoconfigure.aad.filter.UserPrincipal
com.azure.spring.autoconfigure.aad.UserPrincipalManager com.azure.spring.cloud.autoconfigure.aad.filter.UserPrincipalManager

En esta sección se enumeran las clases eliminadas de azure-spring-boot-starter-active-directory.

  • Se ha quitado la clase heredada

    • com.azure.spring.aad.webapp.AADHandleConditionalAccessFilter
    • com.azure.spring.aad.webapi.validator.AADJwtAudienceValidator
    • com.azure.spring.aad.webapi.validator.AADJwtClaimValidator

De azure-spring-boot-starter-active-directory-b2c a spring-cloud-azure-starter-active-directory-b2c

Esta guía está pensada para ayudar en la migración a spring-cloud-azure-starter-active-directory-b2c de la versión 3 de azure-spring-boot-starter-active-directory-b2c.

Para obtener información general, use los vínculos siguientes:

  • Para obtener información general sobre los cambios de la versión 4.0, consulte las secciones Introducción y Ventajas de migración .
  • Para obtener más información sobre los cambios de estrategia en la nomenclatura del proyecto, consulte la sección Cambios de nomenclatura.
  • Para obtener información sobre cómo usar una lista de materiales para todas las bibliotecas de Azure de Spring Cloud, consulte la sección BOM .
  • Para obtener información sobre cómo controlar la autenticación en Spring Cloud Azure 4.0, consulte la sección Cambios de autenticación .
  • Para obtener información sobre cómo aprovechar spring-boot-properties-migrator durante la migración, consulte la sección Configuración de cada SDK .
  • Para más información sobre los cambios de configuración globales y comunes, consulte la sección Configuraciones globales .

Cambios de dependencia

Algunas dependencias innecesarias se incluyeron en los artefactos heredados, que hemos quitado en las bibliotecas modernas de Spring Cloud Azure 4.0. Asegúrese de agregar las dependencias eliminadas manualmente al proyecto para evitar un bloqueo accidental.

En la tabla siguiente se muestran las dependencias quitadas:

Dependencias eliminadas Descripción
org.springframework.boot:spring-boot-starter-validation Incluya el iniciador de validación si desea usar el validador de hibernación.

Cambios en la configuración del SDK

En esta sección se incluyen los cambios sobre las propiedades agregadas, quitadas y modificadas.

  • Los dos puntos siguientes son los principales a los que prestar atención:
  1. Todos los nombres de propiedad de configuración cambiaron el prefijo de azure.activedirectory.b2c a spring.cloud.azure.active-directory.b2c.
  2. Se agrega una nueva propiedad spring.cloud.azure.active-directory.b2c.enabled para permitir habilitar o deshabilitar las características relacionadas con Azure AD B2C. El valor predeterminado es false.

En la tabla siguiente se muestran las asignaciones de propiedades de azure-spring-boot-starter-active-directory-b2c a spring-cloud-azure-starter-active-directory-b2c:

Propiedades heredadas Propiedades modernas
azure.activedirectory.b2c.authenticate-additional-parameters spring.cloud.azure.active-directory.b2c.authenticate-additional-parameters
azure.activedirectory.b2c.authorization-clients spring.cloud.azure.active-directory.b2c.authorization-clients
azure.activedirectory.b2c.authorization-clients.<>AZURE_CLIENT_NAME.authorization-grant-type spring.cloud.azure.active-directory.b2c.authorization-clients.<>AZURE_CLIENT_NAME.authorization-grant-type
azure.activedirectory.b2c.authorization-clients.<>AZURE_CLIENT_NAME.scopes spring.cloud.azure.active-directory.b2c.authorization-clients.<>AZURE_CLIENT_NAME.scopes
azure.activedirectory.b2c.app-id-uri spring.cloud.azure.active-directory.b2c.app-id-uri
azure.activedirectory.b2c.base-uri spring.cloud.azure.active-directory.b2c.base-uri
azure.activedirectory.b2c.client-id spring.cloud.azure.active-directory.b2c.credential.client-id
azure.activedirectory.b2c.client-secret spring.cloud.azure.active-directory.b2c.credential.client-secret
azure.activedirectory.b2c.jwt-connect-timeout spring.cloud.azure.active-directory.b2c.jwt-connect-timeout
azure.activedirectory.b2c.jwt-read-timeout spring.cloud.azure.active-directory.b2c.jwt-read-timeout
azure.activedirectory.b2c.jwt-size-limit spring.cloud.azure.active-directory.b2c.jwt-size-limit
azure.activedirectory.b2c.login-flow spring.cloud.azure.active-directory.b2c.login-flow
azure.activedirectory.b2c.logout-success-url spring.cloud.azure.active-directory.b2c.logout-success-url
azure.activedirectory.b2c.reply-url spring.cloud.azure.active-directory.b2c.reply-url
azure.activedirectory.b2c.tenant-id spring.cloud.azure.active-directory.b2c.profile.tenant-id
azure.activedirectory.b2c.user-flows spring.cloud.azure.active-directory.b2c.user-flows
azure.activedirectory.b2c.user-name-attribute-name spring.cloud.azure.active-directory.b2c.user-name-attribute-name
  • Se han quitado las propiedades de azure-spring-boot-starter-active-directory-b2c:

    • azure.activedirectory.b2c.allow-telemetry
    • azure.activedirectory.b2c.tenant
  • El tipo de valor de las siguientes propiedades se cambia de long a Duration:

    • jwt-connect-timeout
    • jwt-read-timeout

Cambios de API

En la tabla siguiente se muestran las asignaciones de clases de azure-spring-boot-starter-active-directory-b2c a spring-cloud-azure-starter-active-directory-b2c:

Clase heredada Clase moderna
com.azure.spring.autoconfigure.b2c.AADB2CAuthorizationRequestResolver com.azure.spring.cloud.autoconfigure.aadb2c.AadB2cAuthorizationRequestResolver
com.azure.spring.autoconfigure.b2c.AADB2CJwtBearerTokenAuthenticationConverter com.azure.spring.cloud.autoconfigure.aad.AadJwtBearerTokenAuthenticationConverter
com.azure.spring.autoconfigure.b2c.AADB2CLogoutSuccessHandler com.azure.spring.cloud.autoconfigure.aadb2c.AadB2cLogoutSuccessHandler
com.azure.spring.autoconfigure.b2c.AADB2COidcLoginConfigurer com.azure.spring.cloud.autoconfigure.aadb2c.AadB2COidcLoginConfigurer
com.azure.spring.autoconfigure.b2c.AADB2CProperties com.azure.spring.cloud.autoconfigure.aadb2c.properties.AadB2cProperties
com.azure.spring.autoconfigure.b2c.AADB2CTrustedIssuerRepository com.azure.spring.cloud.autoconfigure.aadb2c.AadB2cTrustedIssuerRepository
com.azure.spring.autoconfigure.b2c.AuthorizationClientProperties com.azure.spring.cloud.autoconfigure.aad.properties.AuthorizationClientProperties

De azure-spring-boot-starter-cosmos a spring-cloud-azure-starter-data-cosmos

Esta guía está pensada para ayudar en la migración a spring-cloud-azure-starter-data-cosmos desde la versión 3 de azure-spring-boot-starter-cosmos.

Para obtener información general, use los vínculos siguientes:

  • Para obtener información general sobre los cambios de la versión 4.0, consulte las secciones Introducción y Ventajas de migración .
  • Para obtener más información sobre los cambios de estrategia en la nomenclatura del proyecto, consulte la sección Cambios de nomenclatura.
  • Para obtener información sobre cómo usar una lista de materiales para todas las bibliotecas de Azure de Spring Cloud, consulte la sección BOM .
  • Para obtener información sobre cómo controlar la autenticación en Spring Cloud Azure 4.0, consulte la sección Cambios de autenticación .
  • Para obtener información sobre cómo aprovechar spring-boot-properties-migrator durante la migración, consulte la sección Configuración de cada SDK .
  • Para más información sobre los cambios de configuración globales y comunes, consulte la sección Configuraciones globales .

Cambios en la configuración del SDK

Todos los nombres de propiedad de configuración cambiaron el prefijo de azure.cosmos a spring.cloud.azure.cosmos.

En la tabla siguiente se muestran las asignaciones de clases de azure-spring-boot-starter-cosmos a spring-cloud-azure-starter-data-cosmos:

Propiedades heredadas Propiedades modernas
azure.cosmos.connection-mode spring.cloud.azure.cosmos.connection-mode
nivel azure.cosmos.consistency nivel spring.cloud.azure.cosmos.consistency
azure.cosmos.database spring.cloud.azure.cosmos.database
azure.cosmos.key spring.cloud.azure.cosmos.key
azure.cosmos.populate-query-metrics spring.cloud.azure.cosmos.populate-query-metrics
azure.cosmos.uri spring.cloud.azure.cosmos.endpoint

Desde azure-spring-boot-starter-keyvault-secrets a spring-cloud-azure-starter-keyvault-secrets

Esta guía está pensada para ayudar en la migración a spring-cloud-azure-starter-keyvault-secrets de la versión 3 de azure-spring-boot-starter-keyvault-secrets.

Para obtener información general, use los vínculos siguientes:

  • Para obtener información general sobre los cambios de la versión 4.0, consulte las secciones Introducción y Ventajas de migración .
  • Para obtener más información sobre los cambios de estrategia en la nomenclatura del proyecto, consulte la sección Cambios de nomenclatura.
  • Para obtener información sobre cómo usar una lista de materiales para todas las bibliotecas de Azure de Spring Cloud, consulte la sección BOM .
  • Para obtener información sobre cómo controlar la autenticación en Spring Cloud Azure 4.0, consulte la sección Cambios de autenticación .
  • Para obtener información sobre cómo aprovechar spring-boot-properties-migrator durante la migración, consulte la sección Configuración de cada SDK .
  • Para más información sobre los cambios de configuración globales y comunes, consulte la sección Configuraciones globales .

Cambios en la configuración del SDK

En esta sección se incluyen los cambios sobre las propiedades agregadas, quitadas y modificadas.

En la tabla siguiente se muestran las asignaciones de propiedades de azure-spring-boot-starter-keyvault-secrets a spring-cloud-azure-starter-keyvault-secrets:

Propiedades heredadas Propiedades modernas
azure.keyvault.case-sensitive-keys spring.cloud.azure.keyvault.secret.property-source[n].distingue mayúsculas de minúsculas
azure.keyvault.certificate-password spring.cloud.azure.keyvault.secret.property-source[n].credential.client-certificate-password
azure.keyvault.certificate-path spring.cloud.azure.keyvault.secret.property-source[n].credential.client-certificate-path
azure.keyvault.client-id spring.cloud.azure.keyvault.secret.property-source[n].credential.client-id
azure.keyvault.client-key spring.cloud.azure.keyvault.secret.property-source[n].credential.client-secret
azure.keyvault.enabled spring.cloud.azure.keyvault.secret.property-source-enabled y spring.cloud.azure.keyvault.secret.property-source-enabled
azure.keyvault.order Ya no se admite. Use el orden en property-source[n] en su lugar.
azure.keyvault.refresh-interval spring.cloud.azure.keyvault.secret.property-source[n].refresh-interval
azure.keyvault.secret-keys spring.cloud.azure.keyvault.secret.property-source[n].secret-keys
azure.keyvault.tenant-id spring.cloud.azure.keyvault.secret.property-source[n].profile.tenant-id
azure.keyvault.uri spring.cloud.azure.keyvault.secret.property-source[n].endpoint
  • Se han quitado las propiedades de spring-cloud-azure-starter-keyvault-secrets.

azure.keyvault.allow-telemetry azure.keyvault.order

Los siguientes puntos debe prestar su atención a:

  1. Todos los nombres de propiedad de configuración cambiaron el prefijo de azure.keyvault a spring.cloud.azure.keyvault.secret.
  2. spring.cloud.azure.keyvault.secret.enabledse usa para habilitar todas las características secretas de Key Vault, incluir configurar Key Vault los frijoles de cliente secretos (como SecretClient y SecretAsyncClient) y agregar KeyVaultPropertySource en ConfigurableEnvironment.
  3. spring.cloud.azure.keyvault.secret.property-source-enabled se usa para habilitar todas las KeyVaultPropertySource. Solo surtirá efecto cuando spring.cloud.azure.keyvault.secret.enabled=true.
  4. Para las propiedades comunes de Azure (como client, proxy, retry, credential, profile) y Key Vault propiedades (como endpoint, service-version). Si spring.cloud.azure.keyvault.secret.property-sources[n].PROPERTY_NAME no está configurado, spring.cloud.azure.keyvault.secret.PROPERTY_NAME se usará.
  5. spring.cloud.azure.keyvault.secret.property-sources[n].resource es específico de un recurso de Azure único, por lo que si no está configurado, no obtendrá valor de otros lugares.

De azure-spring-boot-starter-servicebus-jms a spring-cloud-azure-starter-servicebus-jms

Esta guía está pensada para ayudar en la migración a spring-cloud-azure-starter-servicebus-jms de la versión 3 de azure-spring-boot-starter-servicebus-jms.

Para obtener información general, use los vínculos siguientes:

  • Para obtener información general sobre los cambios de la versión 4.0, consulte las secciones Introducción y Ventajas de migración .
  • Para obtener más información sobre los cambios de estrategia en la nomenclatura del proyecto, consulte la sección Cambios de nomenclatura.
  • Para obtener información sobre cómo usar una lista de materiales para todas las bibliotecas de Azure de Spring Cloud, consulte la sección BOM .
  • Para obtener información sobre cómo controlar la autenticación en Spring Cloud Azure 4.0, consulte la sección Cambios de autenticación .
  • Para obtener información sobre cómo aprovechar spring-boot-properties-migrator durante la migración, consulte la sección Configuración de cada SDK .
  • Para más información sobre los cambios de configuración globales y comunes, consulte la sección Configuraciones globales .

Cambios en la configuración del SDK

Tipo de configuración para spring.jms.servicebus.idle-timeout cambiado de long(milisegundos) a Duration patrón para mejorar la legibilidad.

De azure-spring-boot-starter-storage a spring-cloud-azure-starter-storage-blob

Esta guía está pensada para ayudar en la migración a spring-cloud-azure-starter-storage-blob de la versión 3 de azure-spring-boot-starter-storage.

Para obtener información general, use los vínculos siguientes:

  • Para obtener información general sobre los cambios de la versión 4.0, consulte las secciones Introducción y Ventajas de migración .
  • Para obtener más información sobre los cambios de estrategia en la nomenclatura del proyecto, consulte la sección Cambios de nomenclatura.
  • Para obtener información sobre cómo usar una lista de materiales para todas las bibliotecas de Azure de Spring Cloud, consulte la sección BOM .
  • Para obtener información sobre cómo controlar la autenticación en Spring Cloud Azure 4.0, consulte la sección Cambios de autenticación .
  • Para obtener información sobre cómo aprovechar spring-boot-properties-migrator durante la migración, consulte la sección Configuración de cada SDK .
  • Para más información sobre los cambios de configuración globales y comunes, consulte la sección Configuraciones globales .

Cambios en la configuración del SDK

Todos los nombres de propiedad de configuración cambiaron el prefijo de azure.storage a spring.cloud.azure.storage.blob.

En la tabla siguiente se muestran las asignaciones de propiedades de azure-spring-boot-starter-storage a spring-cloud-azure-starter-storage-blob:

Propiedades heredadas Propiedades modernas
azure.storage.account-name spring.cloud.azure.storage.blob.account-name
azure.storage.account-key spring.cloud.azure.storage.blob.account-key
azure.storage.blob-endpoint spring.cloud.azure.storage.blob.endpoint

Cambios de API

En la tabla siguiente se muestran las asignaciones de clases de azure-spring-boot-starter-storage a spring-cloud-azure-starter-storage-blob:

Clase heredada Clase moderna
com.azure.spring.autoconfigure.storage.resource.AzureStorageProtocolResolver com.azure.spring.core.resource.AzureStorageBlobProtocolResolver
com.azure.spring.autoconfigure.storage.resource.BlobStorageResource com.azure.spring.core.resource.StorageBlobResource
com.azure.spring.autoconfigure.storage.resource.AzureStorageResourcePatternResolver com.azure.spring.core.resource.AzureStorageBlobProtocolResolver

De azure-spring-boot-starter-storage a spring-cloud-azure-starter-storage-file-share

Esta guía está pensada para ayudar en la migración a spring-cloud-azure-starter-storage-file-share de la versión 3 de azure-spring-boot-starter-storage.

Para obtener información general, use los vínculos siguientes:

  • Para obtener información general sobre los cambios de la versión 4.0, consulte las secciones Introducción y Ventajas de migración .
  • Para obtener más información sobre los cambios de estrategia en la nomenclatura del proyecto, consulte la sección Cambios de nomenclatura.
  • Para obtener información sobre cómo usar una lista de materiales para todas las bibliotecas de Azure de Spring Cloud, consulte la sección BOM .
  • Para obtener información sobre cómo controlar la autenticación en Spring Cloud Azure 4.0, consulte la sección Cambios de autenticación .
  • Para obtener información sobre cómo aprovechar spring-boot-properties-migrator durante la migración, consulte la sección Configuración de cada SDK .
  • Para más información sobre los cambios de configuración globales y comunes, consulte la sección Configuraciones globales .

Cambios en la configuración del SDK

Todos los nombres de propiedad de configuración cambiaron el prefijo de azure.storage a spring.cloud.azure.storage.fileshare.

En la tabla siguiente se muestran las asignaciones de propiedades de azure-spring-boot-starter-storage a spring-cloud-azure-starter-storage-file-share:

Propiedades heredadas Propiedades modernas
azure.storage.account-name spring.cloud.azure.storage.fileshare.account-name
azure.storage.account-key spring.cloud.azure.storage.fileshare.account-key
azure.storage.file-endpoint spring.cloud.azure.storage.fileshare.endpoint

Cambios de API

En la tabla siguiente se muestran las asignaciones de clases de azure-spring-boot-starter-storage a spring-cloud-azure-starter-storage-file-share:

Clase heredada Clase moderna
com.azure.spring.autoconfigure.storage.resource.AzureStorageProtocolResolver com.azure.spring.core.resource.AzureStorageFileProtocolResolver
com.azure.spring.autoconfigure.storage.resource.FileStorageResource com.azure.spring.core.resource.StorageFileResource
com.azure.spring.autoconfigure.storage.resource.AzureStorageResourcePatternResolver com.azure.spring.core.resource.AzureStorageFileProtocolResolver

De azure-spring-cloud-starter-eventhubs a spring-cloud-azure-starter-integration-eventhubs

Esta guía está pensada para ayudar en la migración a spring-cloud-azure-starter-integration-eventhubs de la versión 2 de azure-spring-cloud-starter-eventhubs.

Para obtener información general, use los vínculos siguientes:

  • Para obtener información general sobre los cambios de la versión 4.0, consulte las secciones Introducción y Ventajas de migración .
  • Para obtener más información sobre los cambios de estrategia en la nomenclatura del proyecto, consulte la sección Cambios de nomenclatura.
  • Para obtener información sobre cómo usar una lista de materiales para todas las bibliotecas de Azure de Spring Cloud, consulte la sección BOM .
  • Para obtener información sobre cómo controlar la autenticación en Spring Cloud Azure 4.0, consulte la sección Cambios de autenticación .
  • Para obtener información sobre cómo aprovechar spring-boot-properties-migrator durante la migración, consulte la sección Configuración de cada SDK .
  • Para más información sobre los cambios de configuración globales y comunes, consulte la sección Configuraciones globales .

Cambios en la configuración del SDK

Importante

El prefijo de configuración se ha cambiado de spring.cloud.azure.eventhub a spring.cloud.azure.eventhubs.

Para ver los cambios en las entradas secundarias de este prefijo, consulte las tablas siguientes:

En la tabla siguiente se muestran las asignaciones de propiedades de azure-spring-cloud-starter-eventhubs a spring-cloud-azure-starter-integration-eventhubs:

Propiedades heredadas Propiedades modernas
spring.cloud.azure.resource-group spring.cloud.azure.eventhubs.resource.resource-group
espacio de nombres spring.cloud.azure.eventhub.namespace espacio de nombres spring.cloud.azure.eventhubs.namespace
spring.cloud.azure.eventhub.connection-string spring.cloud.azure.eventhubs.connection-string
spring.cloud.azure.eventhub.checkpoint-storage-account spring.cloud.azure.eventhubs.processor.checkpoint-store.account-name
spring.cloud.azure.eventhub.checkpoint-access-key spring.cloud.azure.eventhubs.processor.checkpoint-store.account-key
spring.cloud.azure.eventhub.checkpoint-container spring.cloud.azure.eventhubs.processor.checkpoint-store.container-name

Por ejemplo, cambie de:

spring:
  cloud:
    azure:
      eventhub:
        connection-string: ${AZURE_EVENTHUBS_CONNECTION_STRING}
        checkpoint-storage-account: ${AZURE_CHECKPOINT_STORAGE_ACCOUNT_NAME}
        checkpoint-access-key: ${AZURE_CHECKPOINT_ACCOUNT_KEY}
        checkpoint-container: ${AZURE_CHECKPOINT_CONTAINER_NAME}

a:

spring:
  cloud:
    azure:
      eventhubs:
        connection-string: ${AZURE_EVENTHUBS_CONNECTION_STRING}
        processor:
          checkpoint-store:
            container-name: ${AZURE_STORAGE_CONTAINER_NAME}
            account-name: ${AZURE_STORAGE_ACCOUNT_NAME}
            account-key: ${AZURE_STORAGE_ACCOUNT_KEY}

Cambios de API

  • Para conocer los cambios en las anotaciones del agente de escucha, consulte la guía de migración de la <<biblioteca migration-azure-spring-cloud-messaging, azure-spring-cloud-messaging>> .
  • Quite EventHubOperation con la función de suscripción movida a la clase EventHubsMessageListenerContainer y la función de envío se movió a EventHubsTemplate.
  • Cambie el nombre EventHubInboundChannelAdapter de para EventHubsInboundChannelAdapter mantener la coherencia con el servicio de Azure Event Hubs.
  • Cambie el constructor de EventHubInboundChannelAdapter(String, SubscribeByGroupOperation, String) a EventHubsInboundChannelAdapter(EventHubsMessageListenerContainer) y EventHubsInboundChannelAdapter(EventHubsMessageListenerContainer, ListenerMode).
  • Cambie CheckpointConfig el estilo de creación de instancias al constructor simple en lugar del estilo de compilación.
  • Drop API EventHubOperation#setCheckpointConfig. Para establecer la configuración del punto de control para el adaptador de canal de entrada, los usuarios pueden llamar al método EventHubsContainerProperties#setCheckpointConfig.
  • Drop API EventHubOperation#setBatchConsumerConfig. Para establecer la configuración de consumo por lotes para el adaptador de canal de entrada, los usuarios pueden llamar a los dos métodos EventHubsContainerProperties#getBatch#setMaxSize y EventHubsContainerProperties#getBatch#setMaxWaitTime , mientras tanto, .
  • Para el modo de consumo por lotes, cambie los nombres de encabezado del mensaje convertidos a partir de mensajes por lotes.
    • Cambie el encabezado del mensaje de azure_eventhub_enqueued_time a azure_eventhubs_batch_converted_enqueued_time.
    • Cambie el encabezado del mensaje de azure_eventhub_offset a azure_eventhubs_batch_converted_offset.
    • Cambie el encabezado del mensaje de azure_eventhub_sequence_number a azure_eventhubs_batch_converted_sequence_number.
    • Cambie el encabezado del mensaje de azure_partition_key a azure_batch_converted_partition_key.
  • Al publicar mensajes en Event Hubs, omita todos los encabezados de mensaje convertidos a partir de mensajes por lotes. Los encabezados incluyen:
    • azure_batch_converted_partition_key
    • azure_eventhubs_batch_converted_enqueued_time
    • azure_eventhubs_batch_converted_offset
    • azure_eventhubs_batch_converted_sequence_number
    • azure_eventhubs_batch_converted_system_properties
    • azure_eventhubs_batch_converted_application_properties
  • El BATCH modo de punto de comprobación solo funciona ahora en el modo de consumo por lotes, que se puede habilitar pasando ListenerMode.BATCH al constructor EventHubsInboundChannelAdapter.

En la tabla siguiente se muestran las asignaciones de clases de azure-spring-cloud-starter-eventhubs a spring-cloud-azure-starter-integration-eventhubs:

Clase heredada Clase moderna
com.azure.spring.integration.core.AzureHeaders com.azure.spring.messaging.AzureHeaders
com.azure.spring.integration.core.EventHubHeaders com.azure.spring.messaging.eventhubs.support.EventHubsHeaders
com.azure.spring.integration.core.api.CheckpointConfig com.azure.spring.messaging.eventhubs.core.checkpoint.CheckpointConfig
com.azure.spring.integration.core.api.CheckpointMode com.azure.spring.messaging.eventhubs.core.checkpoint.CheckpointMode
com.azure.spring.integration.core.api.reactor.Checkpointer com.azure.spring.messaging.checkpoint.Checkpointer
com.azure.spring.integration.core.api.reactor.DefaultMessageHandler com.azure.spring.integration.core.handler.DefaultMessageHandler
com.azure.spring.integration.eventhub.inbound.EventHubInboundChannelAdapter com.azure.spring.integration.eventhubs.inbound.EventHubsInboundChannelAdapter

Fragmento de código de ejemplo

  • EventHubsInboundChannelAdapter código de ejemplo:

    Código heredado:

    public class Demo {
        @Bean
        public EventHubInboundChannelAdapter messageChannelAdapter(
            @Qualifier("INPUT_CHANNEL") MessageChannel inputChannel, EventHubOperation   eventhubOperation) {
            eventhubOperation.setCheckpointConfig(CheckpointConfig.builder().checkpointMode  (CheckpointMode.MANUAL).build());
            EventHubInboundChannelAdapter adapter = new EventHubInboundChannelAdapter("EVENTHUB_NAME",
                eventhubOperation, "CONSUMER_GROUP");
            adapter.setOutputChannel(inputChannel);
            return adapter;
        }
    }
    

    Código moderno:

    public class Demo {
        @Bean
        public EventHubsMessageListenerContainer messageListenerContainer(EventHubsProcessorFactory processorFactory) {
            EventHubsContainerProperties containerProperties = new EventHubsContainerProperties();
            containerProperties.setEventHubName("EVENTHUB_NAME");
            containerProperties.setConsumerGroup("CONSUMER_GROUP");
            CheckpointConfig config = new CheckpointConfig(CheckpointMode.MANUAL);
            containerProperties.setCheckpointConfig(config);
            return new EventHubsMessageListenerContainer(processorFactory, containerProperties);
        }
    
        @Bean
        public EventHubsInboundChannelAdapter messageChannelAdapter(@Qualifier("INPUT_CHANNEL") MessageChannel inputChannel,
                                                                    EventHubsMessageListenerContainer listenerContainer) {
            EventHubsInboundChannelAdapter adapter = new EventHubsInboundChannelAdapter(listenerContainer);
            adapter.setOutputChannel(inputChannel);
            return adapter;
        }
    }
    
  • DefaultMessageHandler código de ejemplo:

    Código heredado:

    public class Demo {
        @Bean
        @ServiceActivator(inputChannel = "OUTPUT_CHANNEL")
        public MessageHandler messageSender(EventHubOperation eventhubOperation) {
            DefaultMessageHandler handler = new DefaultMessageHandler("EVENTHUB_NAME", eventhubOperation);
            handler.setSendCallback(new ListenableFutureCallback<Void>() {
                @Override
                public void onSuccess(Void result) {
                    LOGGER.info("Message was sent successfully.");
                }
    
                @Override
                public void onFailure(Throwable ex) {
                    LOGGER.error("There was an error sending the message.", ex);
                }
            });
            return handler;
        }
    }
    

    Código moderno:

    public class Demo {
        @Bean
        @ServiceActivator(inputChannel = "OUTPUT_CHANNEL")
        public MessageHandler messageSender(EventHubsTemplate eventhubOperation) {
            DefaultMessageHandler handler = new DefaultMessageHandler("EVENTHUB_NAME", eventhubOperation);
            handler.setSendCallback(new ListenableFutureCallback<Void>() {
                @Override
                public void onSuccess(Void result) {
                    LOGGER.info("Message was sent successfully.");
                }
    
                @Override
                public void onFailure(Throwable ex) {
                    LOGGER.error("There was an error sending the message.", ex);
                }
            });
    
            return handler;
        }
    }
    

Desde azure-spring-integration-eventhubs a spring-integration-azure-eventhubs

Esta guía está pensada para ayudar en la migración a spring-integration-azure-eventhubs de la versión 2 de azure-spring-integration-eventhubs.

  • Para obtener información general sobre los cambios de la versión 4.0, consulte las secciones Introducción y Ventajas de migración .
  • Para obtener más información sobre los cambios de estrategia en la nomenclatura del proyecto, consulte la sección Cambios de nomenclatura.
  • Para aprender a usar una lista de materiales para todas las bibliotecas de Azure de Spring Cloud, consulte la sección BOM .

Cambios de API

  • Quite EventHubOperation con la función de suscripción movida a la clase EventHubsMessageListenerContainer y la función de envío se movió a EventHubsTemplate.
  • Cambie el nombre EventHubInboundChannelAdapter de como EventHubsInboundChannelAdapter para mantener la coherencia con el servicio de Azure Event Hubs.
  • Cambie el constructor de EventHubInboundChannelAdapter(String, SubscribeByGroupOperation, String) a EventHubsInboundChannelAdapter(EventHubsMessageListenerContainer) y EventHubsInboundChannelAdapter(EventHubsMessageListenerContainer, ListenerMode).
  • Cambie CheckpointConfig el estilo de creación de instancias al constructor simple en lugar del estilo de compilación.
  • Drop API EventHubOperation#setCheckpointConfig. Para establecer la configuración del punto de control para el adaptador de canal de entrada, los usuarios pueden llamar al método EventHubsContainerProperties#setCheckpointConfig.
  • Drop API EventHubOperation#setBatchConsumerConfig. Para establecer la configuración de consumo por lotes para el adaptador de canal de entrada, los usuarios pueden llamar a los dos métodos EventHubsContainerProperties#getBatch#setMaxSize y EventHubsContainerProperties#getBatch#setMaxWaitTime , mientras tanto, .
  • Para el modo de consumo por lotes, cambie los nombres de encabezado del mensaje convertidos a partir de mensajes por lotes.
    • Cambie el encabezado del mensaje de azure_eventhub_enqueued_time a azure_eventhubs_batch_converted_enqueued_time.
    • Cambie el encabezado del mensaje de azure_eventhub_offset a azure_eventhubs_batch_converted_offset.
    • Cambie el encabezado del mensaje de azure_eventhub_sequence_number a azure_eventhubs_batch_converted_sequence_number.
    • Cambie el encabezado del mensaje de azure_partition_key a azure_batch_converted_partition_key.
  • Al publicar mensajes en Event Hubs, omita todos los encabezados de mensaje convertidos a partir de mensajes por lotes. Los encabezados incluyen:
    • azure_batch_converted_partition_key
    • azure_eventhubs_batch_converted_enqueued_time
    • azure_eventhubs_batch_converted_offset
    • azure_eventhubs_batch_converted_sequence_number
    • azure_eventhubs_batch_converted_system_properties
    • azure_eventhubs_batch_converted_application_properties
  • El BATCH modo de punto de comprobación solo funciona ahora en el modo de consumo por lotes, que se puede habilitar pasando ListenerMode.BATCH al constructor EventHubsInboundChannelAdapter.

En la tabla siguiente se muestran las asignaciones de clases de azure-spring-integration-eventhubs a spring-integration-azure-eventhubs:

Clase heredada Clase moderna
com.azure.spring.integration.core.AzureHeaders com.azure.spring.messaging.AzureHeaders
com.azure.spring.integration.core.EventHubHeaders com.azure.spring.messaging.eventhubs.support.EventHubsHeaders
com.azure.spring.integration.core.api.CheckpointConfig com.azure.spring.messaging.eventhubs.core.checkpoint.CheckpointConfig
com.azure.spring.integration.core.api.CheckpointMode com.azure.spring.messaging.eventhubs.core.checkpoint.CheckpointMode
com.azure.spring.integration.core.api.reactor.Checkpointer com.azure.spring.messaging.checkpoint.Checkpointer
com.azure.spring.integration.core.api.reactor.DefaultMessageHandler com.azure.spring.integration.core.handler.DefaultMessageHandler
com.azure.spring.integration.eventhub.inbound.EventHubInboundChannelAdapter com.azure.spring.integration.eventhubs.inbound.EventHubsInboundChannelAdapter

Desde azure-spring-cloud-starter-servicebus a spring-cloud-azure-starter-integration-servicebus

Esta guía está pensada para ayudar en la migración a spring-cloud-azure-starter-integration-servicebus de la versión 2 de azure-spring-cloud-starter-servicebus.

Para obtener información general, use los vínculos siguientes:

  • Para obtener información general sobre los cambios de la versión 4.0, consulte las secciones Introducción y Ventajas de migración .
  • Para obtener más información sobre los cambios de estrategia en la nomenclatura del proyecto, consulte la sección Cambios de nomenclatura.
  • Para aprender a usar una lista de materiales para todas las bibliotecas de Azure de Spring Cloud, consulte la sección BOM .
  • Para obtener información sobre cómo controlar la autenticación en Spring Cloud Azure 4.0, consulte la sección Cambios de autenticación .
  • Para obtener información sobre cómo aprovechar spring-boot-properties-migrator durante la migración, consulte la sección Configuración de cada SDK .
  • Para más información sobre los cambios de configuración globales y comunes, consulte la sección Configuraciones globales .

Cambios en la configuración del SDK

Para todas las opciones de configuración admitidas en spring-cloud-azure-starter-integration-servicebus, el prefijo permanece como spring.cloud.azure.servicebus.

En la tabla siguiente se muestran las asignaciones de propiedades de azure-spring-cloud-starter-servicebus a spring-cloud-azure-starter-integration-servicebus:

Propiedades heredadas Propiedades modernas
spring.cloud.azure.resource-group spring.cloud.azure.servicebus.resource.resource-group
tipo spring.cloud.azure.servicebus.transport tipo spring.cloud.azure.servicebus.client.transport-type
spring.cloud.azure.servicebus.retry-options.retry-mode spring.cloud.azure.servicebus.retry.mode
spring.cloud.azure.servicebus.retry-options.max-retries spring.cloud.azure.servicebus.retry.exponential.max-retries o spring.cloud.azure.servicebus.retry.fixed.max-retries, deben configurarse según spring.cloud.azure.servicebus.retry.mode=fixed o exponencial.
spring.cloud.azure.servicebus.retry-options.delay spring.cloud.azure.servicebus.retry.exponential.base-delay o spring.cloud.azure.servicebus.retry.fixed.delay, debe configurarse según spring.cloud.azure.servicebus.retry.mode=fixed o exponencial.
spring.cloud.azure.servicebus.retry-options.max-delay spring.cloud.azure.servicebus.retry.exponential.max-delay
spring.cloud.azure.servicebus.retry-options.try-timeout spring.cloud.azure.servicebus.retry.try-timeout

Cambios de API

  • Quite ServiceBusQueueOperation y ServiceBusTopicOperation con la función de suscripción movida a la clase ServiceBusMessageListenerContainer y la función de envío se movió a ServiceBusTemplate.
  • Quite ServiceBusQueueInboundChannelAdapter y ServiceBusTopicInboundChannelAdaptery mueva la funcionalidad para escuchar una entidad de cola o tema de Service Bus a ServiceBusInboundChannelAdapter.
  • Cambie el constructor de ServiceBusQueueInboundChannelAdapter(String, SubscribeByGroupOperation, String) a ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer) y ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode).
  • Cambie el constructor de ServiceBusTopicInboundChannelAdapter(String, SubscribeByGroupOperation, String) a ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer) y ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode).
  • Quite las API ServiceBusQueueOperation#setCheckpointConfig y ServiceBusTopicOperation#setCheckpointConfig. Para establecer la configuración del punto de control para el adaptador de canal de entrada, los usuarios pueden llamar al método ServiceBusContainerProperties#setAutoComplete en su lugar. Para deshabilitar el modo de autocompletar es equivalente al MANUAL modo de punto de control y para habilitarlo, se desencadenará el RECORD modo .
  • Quite las API ServiceBusQueueOperatio#setClientConfig y ServiceBusTopicOperation#setClientConfig. Para configurar el subyacente ServiceBusProcessorClient utilizado por el adaptador de canal de entrada, los usuarios pueden usar ServiceBusContainerProperties en su lugar.
  • Quite CompletableFuture la compatibilidad en ServiceBusTemplate y DefaultMessageHandler, Reactor en su lugar.
  • Agregue una nueva API de para especificar el tipo de ServiceBusTemplate#setDefaultEntityType entidad, que es necesario cuando no se proporciona ningún bean de PropertiesSupplier&lt;String, ProducerProperties&gt; para .ProducerProperties#entityType
  • Quite el encabezado AzureHeaders.RAW_IDdel mensaje . En su lugar, use ServiceBusMessageHeaders.MESSAGE_ID.

En la tabla siguiente se muestran las asignaciones de clases de azure-spring-cloud-starter-servicebus a spring-cloud-azure-starter-integration-servicebus:

Clase heredada Clase moderna
com.azure.spring.integration.core.AzureHeaders com.azure.spring.messaging.AzureHeaders
com.azure.spring.integration.servicebus.converter.ServiceBusMessageHeaders com.azure.spring.messaging.servicebus.support.ServiceBusMessageHeaders
com.azure.spring.integration.servicebus.converter.ServiceBusMessageConverter com.azure.spring.messaging.servicebus.support.converter.ServiceBusMessageConverter
com.azure.spring.integration.core.DefaultMessageHandler com.azure.spring.integration.core.handler.DefaultMessageHandler
com.azure.spring.integration.servicebus.inbound.ServiceBusQueueInboundChannelAdapter com.azure.spring.integration.servicebus.inbound.ServiceBusInboundChannelAdapter
com.azure.spring.integration.servicebus.inbound.ServiceBusTopicInboundChannelAdapter com.azure.spring.integration.servicebus.inbound.ServiceBusInboundChannelAdapter

Fragmento de código de ejemplo

  • ServiceBusInboundChannelAdapter código de ejemplo:

    Código heredado de usar ServiceBusQueueInboundChannelAdapter o ServiceBusTopicInboundChannelAdapter:

    public class Demo {
        @Bean
        public ServiceBusQueueInboundChannelAdapter queueMessageChannelAdapter(
            @Qualifier("INPUT_CHANNEL_NAME") MessageChannel inputChannel, ServiceBusQueueOperation queueOperation) {
            queueOperation.setCheckpointConfig(CheckpointConfig.builder().checkpointMode(CheckpointMode.MANUAL).build());
            ServiceBusQueueInboundChannelAdapter adapter = new ServiceBusQueueInboundChannelAdapter("QUEUE_NAME",
                queueOperation);
            adapter.setOutputChannel(inputChannel);
            return adapter;
        }
    
        @Bean
        public ServiceBusTopicInboundChannelAdapter topicMessageChannelAdapter(
            @Qualifier("INPUT_CHANNEL_NAME") MessageChannel inputChannel, ServiceBusTopicOperation topicOperation) {
            topicOperation.setCheckpointConfig(CheckpointConfig.builder().checkpointMode(CheckpointMode.MANUAL).build());
            ServiceBusTopicInboundChannelAdapter adapter = new ServiceBusTopicInboundChannelAdapter("TOPIC_NAME",
                topicOperation, "SUBSCRIPTION_NAME");
            adapter.setOutputChannel(inputChannel);
            return adapter;
        }
    
    }
    

    Código moderno:

    public class Demo {
        @Bean("queue-listener-container")
        public ServiceBusMessageListenerContainer messageListenerContainer(ServiceBusProcessorFactory processorFactory) {
            ServiceBusContainerProperties containerProperties = new ServiceBusContainerProperties();
            containerProperties.setEntityName("QUEUE_NAME");
            containerProperties.setAutoComplete(false);
            return new ServiceBusMessageListenerContainer(processorFactory, containerProperties);
        }
    
        @Bean
        public ServiceBusInboundChannelAdapter queueMessageChannelAdapter(
            @Qualifier("INPUT_CHANNEL") MessageChannel inputChannel,
            @Qualifier("queue-listener-container") ServiceBusMessageListenerContainer listenerContainer) {
            ServiceBusInboundChannelAdapter adapter = new ServiceBusInboundChannelAdapter(listenerContainer);
            adapter.setOutputChannel(inputChannel);
            return adapter;
        }
    
        @Bean("topic-listener-container")
        public ServiceBusMessageListenerContainer messageListenerContainer(ServiceBusProcessorFactory processorFactory) {
            ServiceBusContainerProperties containerProperties = new ServiceBusContainerProperties();
            containerProperties.setEntityName("TOPIC_NAME");
            containerProperties.setSubscriptionName("SUBSCRIPTION_NAME");
            containerProperties.setAutoComplete(false);
            return new ServiceBusMessageListenerContainer(processorFactory, containerProperties);
        }
    
        @Bean
        public ServiceBusInboundChannelAdapter topicMessageChannelAdapter(
            @Qualifier("INPUT_CHANNEL") MessageChannel inputChannel,
            @Qualifier("topic-listener-container") ServiceBusMessageListenerContainer listenerContainer) {
            ServiceBusInboundChannelAdapter adapter = new ServiceBusInboundChannelAdapter(listenerContainer);
            adapter.setOutputChannel(inputChannel);
            return adapter;
        }
    }
    
  • DefaultMessageHandler código de ejemplo:

    Código heredado, tomando cola como ejemplo:

    public class Demo {
        @Bean
        @ServiceActivator(inputChannel = "OUTPUT_CHANNEL_NAME")
        public MessageHandler queueMessageSender(ServiceBusQueueOperation queueOperation) {
            DefaultMessageHandler handler = new DefaultMessageHandler("QUEUE_NAME", queueOperation);
            handler.setSendCallback(new ListenableFutureCallback<Void>() {
                @Override
                public void onSuccess(Void result) {
                    LOGGER.info("Message was sent successfully.");
                }
                @Override
                public void onFailure(Throwable ex) {
                    LOGGER.info("There was an error sending the message.");
                }
            });
            return handler;
        }
    }
    

    Código moderno:

    public class Demo {
    
        @Bean
        @ServiceActivator(inputChannel = "OUTPUT_CHANNEL_NAME")
        public MessageHandler queueMessageSender(ServiceBusTemplate serviceBusTemplate) {
            serviceBusTemplate.setDefaultEntityType(ServiceBusEntityType.QUEUE);
            DefaultMessageHandler handler = new DefaultMessageHandler("QUEUE_NAME", serviceBusTemplate);
            handler.setSendCallback(new ListenableFutureCallback<Void>() {
                @Override
                public void onSuccess(Void result) {
                    LOGGER.info("Message was sent successfully for {}.", "QUEUE_NAME");
                }
    
                @Override
                public void onFailure(Throwable ex) {
                    LOGGER.info("There was an error sending the message.");
                }
            });
    
            return handler;
        }
    }
    

Desde azure-spring-integration-servicebus a spring-integration-azure-servicebus

Esta guía está pensada para ayudar en la migración a spring-integration-azure-servicebus desde la versión 2 de azure-spring-integration-servicebus.

  • Para obtener información general sobre los cambios de la versión 4.0, consulte las secciones Introducción y Ventajas de migración .
  • Para obtener más información sobre los cambios de estrategia en la nomenclatura del proyecto, consulte la sección Cambios de nomenclatura.
  • Para aprender a usar una lista de materiales para todas las bibliotecas de Azure de Spring Cloud, consulte la sección BOM .

Cambios de API

  • Quite ServiceBusQueueOperation y ServiceBusTopicOperation con la función de suscripción movida a la clase ServiceBusMessageListenerContainer y la función de envío se movió a ServiceBusTemplate.
  • Quite ServiceBusQueueInboundChannelAdapter y ServiceBusTopicInboundChannelAdaptery mueva la funcionalidad para escuchar una entidad de cola o tema de Service Bus a ServiceBusInboundChannelAdapter.
  • Cambie el constructor de ServiceBusQueueInboundChannelAdapter(String, SubscribeByGroupOperation, String) a ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer) y ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode).
  • Cambie el constructor de ServiceBusTopicInboundChannelAdapter(String, SubscribeByGroupOperation, String) a ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer) y ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode).
  • Quite las API ServiceBusQueueOperation#setCheckpointConfig y ServiceBusTopicOperation#setCheckpointConfig. Para establecer la configuración del punto de control para el adaptador de canal de entrada, los usuarios pueden llamar al método ServiceBusContainerProperties#setAutoComplete en su lugar. Para deshabilitar el modo de autocompletar es equivalente al MANUAL modo de punto de control y para habilitarlo, se desencadenará el RECORD modo .
  • Quite las API ServiceBusQueueOperation#setClientConfig y ServiceBusTopicOperation#setClientConfig. Para configurar el subyacente ServiceBusProcessorClient utilizado por el adaptador de canal de entrada, los usuarios pueden usar ServiceBusContainerProperties en su lugar.
  • Quite CompletableFuture la compatibilidad en ServiceBusTemplate y DefaultMessageHandler, Reactor en su lugar.
  • Agregue una nueva API de para especificar el tipo de ServiceBusTemplate#setDefaultEntityType entidad, que es necesario cuando no se proporciona ningún bean de PropertiesSupplier&lt;String, ProducerProperties&gt; para .ProducerProperties#entityType
  • Quite el encabezado AzureHeaders.RAW_IDdel mensaje . En su lugar, use ServiceBusMessageHeaders.MESSAGE_ID.

En la tabla siguiente se muestran las asignaciones de clases de azure-spring-integration-servicebus a spring-integration-azure-servicebus:

Clase heredada Clase moderna
com.azure.spring.integration.core.AzureHeaders com.azure.spring.messaging.AzureHeaders
com.azure.spring.integration.servicebus.converter.ServiceBusMessageHeaders com.azure.spring.messaging.servicebus.support.ServiceBusMessageHeaders
com.azure.spring.integration.servicebus.converter.ServiceBusMessageConverter com.azure.spring.messaging.servicebus.support.converter.ServiceBusMessageConverter
com.azure.spring.integration.core.DefaultMessageHandler com.azure.spring.integration.core.handler.DefaultMessageHandler
com.azure.spring.integration.servicebus.inbound.ServiceBusQueueInboundChannelAdapter com.azure.spring.integration.servicebus.inbound.ServiceBusInboundChannelAdapter
com.azure.spring.integration.servicebus.inbound.ServiceBusTopicInboundChannelAdapter com.azure.spring.integration.servicebus.inbound.ServiceBusInboundChannelAdapter

Desde azure-spring-cloud-starter-storage-queue a spring-cloud-azure-starter-integration-storage-queue

Esta guía está pensada para ayudar en la migración a spring-cloud-azure-starter-integration-storage-queue de la versión 2 de azure-spring-cloud-starter-storage-queue.

Para obtener información general, use los vínculos siguientes:

  • Para obtener información general sobre los cambios de la versión 4.0, consulte las secciones Introducción y Ventajas de migración .
  • Para obtener más información sobre los cambios de estrategia en la nomenclatura del proyecto, consulte la sección Cambios de nomenclatura.
  • Para aprender a usar una lista de materiales para todas las bibliotecas de Azure de Spring Cloud, consulte la sección BOM .
  • Para obtener información sobre cómo controlar la autenticación en Spring Cloud Azure 4.0, consulte la sección Cambios de autenticación .
  • Para obtener información sobre cómo aprovechar spring-boot-properties-migrator durante la migración, consulte la sección Configuración de cada SDK .
  • Para más información sobre los cambios de configuración globales y comunes, consulte la sección Configuraciones globales .

Cambios en la configuración del SDK

Todos los nombres de propiedad de configuración cambiaron el prefijo de spring.cloud.azure.storage a spring.cloud.azure.storage.queue.

En la tabla siguiente se muestran las asignaciones de propiedades de azure-spring-cloud-starter-storage-queue a spring-cloud-azure-starter-integration-storage-queue:

Propiedades heredadas Propiedades modernas
spring.cloud.azure.storage.account spring.cloud.azure.storage.queue.account-name
spring.cloud.azure.storage.access-key spring.cloud.azure.storage.queue.account-key
spring.cloud.azure.storage.resource-group spring.cloud.azure.storage.queue.resource.resource-group

Cambios de API

  • Quite StorageQueueOperation y proporcione StorageQueueTemplate en su lugar.
  • Quitar checkpoint-mode la configuración en StorageQueueTemplate, solo admite el MANUAL modo .

En la tabla siguiente se muestran las asignaciones de clases de azure-spring-cloud-starter-storage-queue a spring-cloud-azure-starter-integration-storage-queue.

Clase heredada Clase moderna
com.azure.spring.integration.core.AzureHeaders com.azure.spring.messaging.AzureHeaders
com.azure.spring.integration.storage.queue.converter.StorageQueueMessageConverter com.azure.spring.messaging.storage.queue.support.converter.StorageQueueMessageConverter
com.azure.spring.integration.core.api.reactor.Checkpointer com.azure.spring.messaging.checkpoint.Checkpointer
com.azure.spring.integration.storage.queue.StorageQueueTemplate com.azure.spring.storage.queue.core.StorageQueueTemplate
com.azure.spring.integration.core.api.reactor.DefaultMessageHandler com.azure.spring.integration.core.handler.DefaultMessageHandler
com.azure.spring.integration.storage.queue.inbound.StorageQueueMessageSource com.azure.spring.integration.storage.queue.inbound.StorageQueueMessageSource

De azure-spring-integration-storage-queue a spring-integration-azure-storage-queue

Esta guía está pensada para ayudar en la migración a spring-integration-azure-storage-queue de la versión 2 de azure-spring-integration-storage-queue.

  • Para obtener información general sobre los cambios de la versión 4.0, consulte las secciones Introducción y Ventajas de migración .
  • Para obtener más información sobre los cambios de estrategia en la nomenclatura del proyecto, consulte la sección Cambios de nomenclatura.
  • Para obtener información sobre cómo usar una lista de materiales para todas las bibliotecas de Azure de Spring Cloud, consulte la sección BOM .

Cambios de API

  • Quite StorageQueueOperation y proporcione StorageQueueTemplate en su lugar.
  • Quitar checkpoint-mode la configuración en StorageQueueTemplate, solo admite el MANUAL modo .

En la tabla siguiente se muestran las asignaciones de clases de azure-spring-integration-storage-queue a spring-integration-azure-storage-queue.

Clase heredada Clase moderna
com.azure.spring.integration.core.AzureHeaders com.azure.spring.messaging.AzureHeaders
com.azure.spring.integration.storage.queue.converter.StorageQueueMessageConverter com.azure.spring.messaging.storage.queue.support.converter.StorageQueueMessageConverter
com.azure.spring.integration.core.api.reactor.Checkpointer com.azure.spring.messaging.checkpoint.Checkpointer
com.azure.spring.integration.storage.queue.StorageQueueTemplate com.azure.spring.storage.queue.core.StorageQueueTemplate
com.azure.spring.integration.core.api.reactor.DefaultMessageHandler com.azure.spring.integration.core.handler.DefaultMessageHandler
com.azure.spring.integration.storage.queue.inbound.StorageQueueMessageSource com.azure.spring.integration.storage.queue.inbound.StorageQueueMessageSource

Desde azure-spring-cloud-stream-binder-eventhubs a spring-cloud-azure-stream-binder-eventhubs

Esta guía está pensada para ayudar en la migración a spring-cloud-azure-stream-binder-eventhubs de la versión 2 de azure-spring-cloud-stream-binder-eventhubs.

Para obtener información general, use los vínculos siguientes:

  • Para obtener información general sobre los cambios de la versión 4.0, consulte las secciones Introducción y Ventajas de migración .
  • Para obtener más información sobre los cambios de estrategia en la nomenclatura del proyecto, consulte la sección Cambios de nomenclatura.
  • Para obtener información sobre cómo usar una lista de materiales para todas las bibliotecas de Azure de Spring Cloud, consulte la sección BOM .
  • Para obtener información sobre cómo controlar la autenticación en Spring Cloud Azure 4.0, consulte la sección Cambios de autenticación .
  • Para obtener información sobre cómo aprovechar spring-boot-properties-migrator durante la migración, consulte la sección Configuración de cada SDK .
  • Para más información sobre los cambios de configuración globales y comunes, consulte la sección Configuraciones globales .

Cambios en la configuración del SDK

Importante

El prefijo de configuración se ha cambiado de spring.cloud.azure.eventhub a spring.cloud.azure.eventhubs.

Importante

Se cambia el nombre del tipo de enlazador de: eventhub a eventhubs.

Para ver los cambios en las entradas secundarias del prefijo siguiente, consulte la tabla siguiente.

En la tabla siguiente se muestran las asignaciones de propiedades de azure-spring-cloud-stream-binder-eventhubs a spring-cloud-azure-stream-binder-eventhubs:

Propiedades heredadas Propiedades modernas
spring.cloud.azure.resource-group spring.cloud.azure.eventhubs.resource.resource-group
espacio de nombres spring.cloud.azure.eventhub.namespace espacio de nombres spring.cloud.azure.eventhubs.namespace
spring.cloud.azure.eventhub.connection-string spring.cloud.azure.eventhubs.connection-string
spring.cloud.azure.eventhub.checkpoint-storage-account spring.cloud.azure.eventhubs.processor.checkpoint-store.account-name
spring.cloud.azure.eventhub.checkpoint-access-key spring.cloud.azure.eventhubs.processor.checkpoint-store.account-key
spring.cloud.azure.eventhub.checkpoint-container spring.cloud.azure.eventhubs.processor.checkpoint-store.container-name
spring.cloud.stream.eventhub.bindings.binding-name.consumer.max-batch-size spring.cloud.stream.eventhubs.bindings.binding-name.consumer.batch.max-size
spring.cloud.stream.eventhub.bindings.binding-name.consumer.max-wait-time spring.cloud.stream.eventhubs.bindings.binding-name.consumer.batch.max-wait-time
spring.cloud.stream.eventhub.bindings.binding-name.consumer.checkpoint-mode spring.cloud.stream.eventhubs.bindings.binding-name.consumer.checkpoint.mode
spring.cloud.stream.eventhub.bindings.binding-name.consumer.checkpoint-count spring.cloud.stream.eventhubs.bindings.binding-name.consumer.checkpoint.count
spring.cloud.stream.eventhub.bindings.binding-name.consumer.checkpoint-interval spring.cloud.stream.eventhubs.bindings.binding-name.consumer.checkpoint.interval
spring.cloud.stream.eventhub.bindings.binding-name.consumer.start-position spring.cloud.stream.eventhubs.bindings.binding-name.consumer.initial-partition-event-position

Nota

El tipo de valor de la start-position configuración también se cambia de una enumeración de com.azure.spring.integration.core.api.StartPosition a un map de StartPositionProperties para cada partición. Por lo tanto, la clave es el identificador de partición y el valor es de com.azure.spring.cloud.service.eventhubs.properties.StartPositionProperties la que incluye propiedades de desplazamiento, número de secuencia, fecha y hora de fecha puesta en cola y si ambos incluyen.

Ejemplos de migración de configuración

Para usar la cadena de conexión para la autenticación y migrar las propiedades mencionadas anteriormente, los cambios de configuración se enumeran a continuación:

Configuración heredada:

spring:
  cloud:
    azure:
      eventhub:
        connection-string: ${AZURE_EVENTHUBS_CONNECTION_STRING}
        checkpoint-storage-account: ${AZURE_CHECKPOINT_STORAGE_ACCOUNT_NAME}
        checkpoint-access-key: ${AZURE_CHECKPOINT_ACCOUNT_KEY}
        checkpoint-container: ${AZURE_CHECKPOINT_CONTAINER_NAME}
    stream:
      eventhub:
        bindings:
          <binding-name>:
            consumer:
              max-batch-size: ${AZURE_MAX_BATCH_SIZE}
              max-wait-time: ${AZURE_MAX_WAIT_TIME}
              checkpoint-mode: ${AZURE_CHECKPOINT_MODE}
              checkpoint-count: ${AZURE_CHECKPOINT_COUNT}
              checkpoint-interval: ${AZURE_CHECKPOINT_INTERVAL}
              start-position: EARLIEST

Configuración moderna:

spring:
  cloud:
    azure:
      eventhubs:
        connection-string: ${AZURE_EVENTHUBS_CONNECTION_STRING}
        processor:
          checkpoint-store:
            container-name: ${AZURE_STORAGE_CONTAINER_NAME}
            account-name:  ${AZURE_STORAGE_ACCOUNT_NAME}
            account-key: ${AZURE_STORAGE_ACCOUNT_KEY}
    stream:
      eventhubs:
        bindings:
          <binding-name>:
            consumer:
              batch:
                max-size: ${AZURE_MAX_BATCH_SIZE}
                max-wait-time: ${AZURE_MAX_WAIT_TIME}
              checkpoint:
                mode: ${AZURE_CHECKPOINT_MODE}
                count: ${AZURE_CHECKPOINT_COUNT}
                interval: ${AZURE_CHECKPOINT_INTERVAL}
              initial-partition-event-position:
                0:
                  offset: earliest
                1:
                  sequence-number: 100
                2:
                  enqueued-date-time: 2022-01-12T13:32:47.650005Z
                4:
                  inclusive: false

Si usa entidades de seguridad en lugar de cadenas de conexión, en las versiones anteriores a la 4.0, la aplicación se conectará primero a Azure Resource Manager (ARM) con la entidad de seguridad proporcionada y, a continuación, recuperará la cadena de conexión del espacio de nombres especificado con ARM. Al final, la aplicación usa la cadena de conexión recuperada para conectarse a Azure Event Hubs. De este modo, se debe conceder a la entidad de seguridad proporcionada el rol Colaborador para recuperar el espacio de nombres Azure Event Hubs asociado.

Para Azure Spring Apps 4.0, proporcionamos dos maneras de aprovechar las entidades de seguridad para la autenticación. Uno sigue usando las entidades de seguridad para conectarse a ARM y recuperar las cadenas de conexión donde se requiere el Contributor rol para las entidades de seguridad. El otro aprovecha las entidades de seguridad para autenticarse en Azure Active Directory (Azure AD) y después conectarse a Azure Event Hubs directamente. En este caso, el Contributor rol ya no es necesario, mientras que otros Data roles relacionados son necesarios para las operaciones de mensajería. Para asegurarse de que a la entidad de seguridad se le ha concedido el permiso suficiente para acceder al recurso de Azure, consulte Autorización del acceso con Azure AD.

Para la autenticación basada en ARM, tomar la entidad de servicio como ejemplo, la migración de configuración se muestra a continuación, donde el rol asignado no debe cambiar:

Configuración heredada:

spring:
  cloud:
    azure:
      client-id: ${AZURE_CLIENT_ID}
      client-secret: ${AZURE_CLIENT_SECRET}
      tenant-id: ${AZURE_TENANT_ID}
      resource-group: ${EVENTHUB_RESOURCE_GROUP}
      eventhub:
        namespace: ${EVENTHUB_NAMESPACE}

Se requieren configuraciones modernas, propiedades para el identificador de suscripción de Azure y el grupo de recursos:

spring:
  cloud:
    azure:
      credential:
        client-id: ${AZURE_CLIENT_ID}
        client-secret: ${AZURE_CLIENT_SECRET}
      profile:
        tenant-id: ${AZURE_TENANT_ID}
        subscription-id: ${AZURE_SUBSCRIPTION_ID}
      eventhubs:
        namespace: ${EVENTHUB_NAMESPACE}
        resource:
          resource-group: ${RESOURCE_GROUP}

También puede migrar para autenticar y autorizar directamente con Azure AD sin realizar un desvío a ARM. Asegúrese de conceder a la entidad de seguridad los roles necesarios Data para las operaciones de mensajería. Los ejemplos de configuración de la entidad de servicio y la identidad administrada se enumeran a continuación:

  • Con una entidad de servicio

    spring:
      cloud:
        azure:
          credential:
            client-id: ${AZURE_CLIENT_ID}
            client-secret: ${AZURE_CLIENT_SECRET}
          profile:
            tenant-id: ${AZURE_TENANT_ID}
          eventhubs:
            namespace: ${EVENTHUB_NAMESPACE}
    
  • Con una identidad administrada

    spring:
      cloud:
        azure:
          credential:
            managed-identity-enabled: true
            client-id: ${AZURE_MANAGED_IDENTITY_CLIENT_ID} # Only needed when using a user-assigned managed identity
          eventhubs:
            namespace: ${EVENTHUB_NAMESPACE}
    

Cambios de API

En la tabla siguiente se muestran las asignaciones de clases de azure-spring-cloud-stream-binder-eventhubs a spring-cloud-azure-stream-binder-eventhubs.

Clase heredada Clase moderna
com.azure.spring.integration.core.api.reactor.Checkpointer com.azure.spring.messaging.checkpoint.Checkpointer
com.azure.spring.integration.core.AzureHeaders com.azure.spring.messaging.AzureHeaders
com.azure.spring.integration.core.EventHubHeaders com.azure.spring.messaging.eventhubs.support.EventHubsHeaders

Desde azure-spring-cloud-stream-binder-servicebus-* a spring-cloud-azure-stream-binder-servicebus

Esta guía está pensada para ayudar en la migración a spring-cloud-azure-stream-binder-servicebus de la versión 2 de azure-spring-cloud-stream-binder-servicebus-queue o azure-spring-cloud-stream-binder-servicebus-topic.

Para obtener información general, use los vínculos siguientes:

  • Para obtener información general sobre los cambios de la versión 4.0, consulte las secciones Introducción y Ventajas de migración .
  • Para obtener más información sobre los cambios de estrategia en la nomenclatura del proyecto, consulte la sección Cambios de nomenclatura.
  • Para obtener información sobre cómo usar una lista de materiales para todas las bibliotecas de Azure de Spring Cloud, consulte la sección BOM .
  • Para obtener información sobre cómo controlar la autenticación en Spring Cloud Azure 4.0, consulte la sección Cambios de autenticación .
  • Para obtener información sobre cómo aprovechar spring-boot-properties-migrator durante la migración, consulte la sección Configuración de cada SDK .
  • Para más información sobre los cambios de configuración globales y comunes, consulte la sección Configuraciones globales .

Cambios en la configuración del SDK

Importante

Las bibliotecas del enlazador heredadas son azure-spring-cloud-stream-binder-servicebus-queue y azure-spring-cloud-stream-binder-servicebus-topic, y ahora se combinan en una spring-cloud-azure-stream-binder-servicebus.

Importante

El tipo de enlazador se combina desde servicebus-queue y servicebus-topic como servicebus.

En la tabla siguiente se enumeran las nuevas propiedades de configuración de spring-cloud-azure-stream-binder-servicebus:

Propiedades modernas Descripción
spring.cloud.stream.servicebus.bindings.binding-name.producer.entity-type Si usa la función de envío, debe establecer el tipo de entidad, que puede establecer en tema o cola.

En la tabla siguiente se muestran las asignaciones de propiedades de azure-spring-cloud-stream-binder-servicebus-* a spring-cloud-azure-stream-binder-servicebus:

Propiedades heredadas Propiedades modernas
spring.cloud.azure.resource-group spring.cloud.azure.servicebus.resource.resource-group
tipo spring.cloud.azure.servicebus.transport spring.cloud.azure.servicebus.client.transport-type
spring.cloud.azure.servicebus.retry-options.retry-mode spring.cloud.azure.servicebus.retry.mode
spring.cloud.azure.servicebus.retry-options.max-retries spring.cloud.azure.servicebus.retry.exponential.max-retries o spring.cloud.azure.servicebus.retry.fixed.max-retries, se deben configurar en función de spring.cloud.azure.servicebus.retry.mode=fixed o exponencial.
spring.cloud.azure.servicebus.retry-options.delay spring.cloud.azure.servicebus.retry.exponential.base-delay o spring.cloud.azure.servicebus.retry.fixed.delay, se deben configurar en función de spring.cloud.azure.servicebus.retry.mode=fixed o exponencial.
spring.cloud.azure.servicebus.retry-options.max-delay spring.cloud.azure.servicebus.retry.exponential.max-delay
spring.cloud.azure.servicebus.retry-options.try-timeout spring.cloud.azure.servicebus.retry.try-timeout
spring.cloud.stream.servicebus.queue.bindings.* spring.cloud.stream.servicebus.bindings.*
spring.cloud.stream.servicebus.queue.bindings.binding-name.consumer. Concurrencia spring.cloud.stream.servicebus.bindings.binding-name.consumer.max-concurrent-sessions/max-concurrent-calls
spring.cloud.stream.servicebus.queue.bindings.binding-name.consumer. modo de punto de control spring.cloud.stream.servicebus.bindings.binding-name.consumer. autocompletar
spring.cloud.stream.servicebus.topic.bindings.* spring.cloud.stream.servicebus.bindings.*
spring.cloud.stream.servicebus.topic.bindings.binding-name.consumer. Concurrencia spring.cloud.stream.servicebus.bindings.binding-name.consumer.max-concurrent-sessions/max-concurrent-calls
spring.cloud.stream.servicebus.topic.bindings.binding-name.consumer. modo de punto de control spring.cloud.stream.servicebus.bindings.binding-name.consumer. autocompletar

Nota

La propiedad de simultaneidad se reemplazará por maxConcurrentSessions cuando sessionsEnabled es true y maxConcurrentCalls cuando sessionsEnabled es false.

Nota

La habilitación de autocompletar es igual al RECORD modo de punto de comprobación y, al contrario, el MANUAL modo .

Ejemplos de migración de configuración

Configuración heredada, tomando la cola como ejemplo:

spring:
  cloud:
    azure:
      servicebus:
        connection-string: ${AZURE_SERVICEBUS_BINDER_CONNECTION_STRING}
    stream:
      function:
        definition: consume;supply
      bindings:
        consume-in-0:
          destination: ${AZURE_SERVICEBUS_QUEUE_NAME}
        supply-out-0:
          destination: ${AZURE_SERVICEBUS_QUEUE_NAME}
      servicebus:
        queue:
          bindings:
            consume-in-0:
              consumer:
                checkpoint-mode: MANUAL

Configuración moderna:

spring:
  cloud:
    azure:
      servicebus:
        connection-string: ${AZURE_SERVICEBUS_BINDER_CONNECTION_STRING}
    stream:
      function:
        definition: consume;supply
      bindings:
        consume-in-0:
          destination: ${AZURE_SERVICEBUS_QUEUE_NAME}
        supply-out-0:
          destination: ${AZURE_SERVICEBUS_QUEUE_NAME}
      servicebus:
        bindings:
          consume-in-0:
            consumer:
              auto-complete: false
          supply-out-0:
            producer:
              entity-type: queue #set as topic if needed

Si usa entidades de seguridad en lugar de cadenas de conexión, en las versiones anteriores a la 4.0, la aplicación se conectará primero a Azure Resource Manager (ARM) con la entidad de seguridad proporcionada y, a continuación, recuperará la cadena de conexión del espacio de nombres especificado con ARM. Al final, la aplicación usa la cadena de conexión recuperada para conectarse a Azure Service Bus. De este modo, se debe conceder a la entidad de seguridad proporcionada el rol Colaborador para recuperar el espacio de nombres Azure Service Bus asociado.

Para Azure Spring Apps 4.0, proporcionamos dos maneras de aprovechar las entidades de seguridad para la autenticación. Uno sigue usando las entidades de seguridad para conectarse a ARM y recuperar las cadenas de conexión donde se requiere el Contributor rol para las entidades de seguridad. El otro aprovecha las entidades de seguridad para autenticarse en Azure Active Directory (Azure AD) y después conectarse directamente al Azure Service Bus. En este caso, el Contributor rol ya no es necesario, mientras que otros Data roles relacionados son necesarios para las operaciones de mensajería. Para asegurarse de que a la entidad de seguridad se le ha concedido el permiso suficiente para acceder al recurso de Azure, consulte Autorización del acceso con Azure AD.

Para la autenticación basada en ARM, tomar la entidad de servicio como ejemplo, la migración de configuración se muestra a continuación, donde el rol asignado no debe cambiar:

Configuración heredada:

spring:
  cloud:
    azure:
      client-id: ${AZURE_CLIENT_ID}
      client-secret: ${AZURE_CLIENT_SECRET}
      tenant-id: ${AZURE_TENANT_ID}
      resource-group: ${SERVICEBUS_RESOURCE_GROUP}
      servicebus:
        namespace: ${SERVICEBUS_NAMESPACE}

Se requieren configuraciones modernas, propiedades para el identificador de suscripción de Azure y el grupo de recursos:

spring:
  cloud:
    azure:
      credential:
        client-id: ${AZURE_CLIENT_ID}
        client-secret: ${AZURE_CLIENT_SECRET}
      profile:
        tenant-id: ${AZURE_TENANT_ID}
        subscription-id: ${AZURE_SUBSCRIPTION_ID}
      servicebus:
        namespace: ${SERVICEBUS_NAMESPACE}
        resource:
          resource-group: ${SERVICEBUS_RESOURCE_GROUP}

También puede migrar para autenticar y autorizar directamente con Azure AD sin realizar un desvío a ARM. Asegúrese de conceder a la entidad de seguridad los roles necesarios Data para las operaciones de mensajería. Los ejemplos de configuración de la entidad de servicio y la identidad administrada se enumeran a continuación:

  • Con una entidad de servicio

    spring:
      cloud:
        azure:
          credential:
            client-id: ${AZURE_CLIENT_ID}
            client-secret: ${AZURE_CLIENT_SECRET}
          profile:
            tenant-id: ${AZURE_TENANT_ID}
          servicebus:
            namespace: ${SERVICEBUS_NAMESPACE}
    
  • Con una identidad administrada

    spring:
      cloud:
        azure:
          credential:
            managed-identity-enabled: true
            client-id: ${AZURE_MANAGED_IDENTITY_CLIENT_ID} # Only needed when using a user-assigned   managed identity
          servicebus:
            namespace: ${SERVICEBUS_NAMESPACE}
    

Cambios de API

  • Quite el encabezado AzureHeaders.RAW_IDdel mensaje . En su lugar, use ServiceBusMessageHeaders.MESSAGE_ID.

En la tabla siguiente se muestran las asignaciones de clases de azure-spring-cloud-stream-binder-eventhubs a spring-cloud-azure-stream-binder-eventhubs.

Clase heredada Clase moderna
com.azure.spring.integration.core.AzureHeaders com.azure.spring.messaging.AzureHeaders
com.azure.spring.integration.servicebus.converter.ServiceBusMessageHeaders com.azure.spring.messaging.servicebus.support.ServiceBusMessageHeaders
com.azure.spring.integration.core.api.Checkpointer com.azure.spring.messaging.checkpoint.Checkpointer

azure-spring-cloud-messaging

La com.azure.spring:azure-spring-cloud-messaging biblioteca no está lista para la versión 4.0. La función de las anotaciones del agente de escucha se está rediseñando, por lo que actualmente no se admiten las @AzureMessageListeneranotaciones , @AzureMessageListenersy @EnableAzureMessaging .