Freigeben über


Migrationshandbuch für Spring Cloud Azure 4.0

Dieser Leitfaden hilft bei der Migration zu Spring Cloud Azure 4.0 aus älteren Azure Spring-Bibliotheken.

Einführung

Wir rufen Bibliotheken auf, deren Gruppen-ID und Artefakt-ID dem Muster com.azure.spring:spring-cloud-azure-* der modernen Bibliotheken entsprechen, und denen mit Mustern com.azure.spring:azure-spring-boot-*, com.azure.spring:azure-spring-cloud-*oder com.azure.spring:azure-spring-integration-* den Legacybibliotheken .

Dieser Leitfaden konzentriert sich auf parallele Vergleiche für ähnliche Konfigurationen zwischen den modernen und älteren Bibliotheken.

Vertrautheit mit com.azure.spring:azure-spring-boot-*oder com.azure.spring:azure-spring-cloud-*com.azure.spring:azure-spring-integration-* Paket wird vorausgesetzt.

Wenn Sie noch nicht mit den Spring Cloud Azure 4.0-Bibliotheken arbeiten, lesen Sie das Spring Cloud Azure-Entwicklerhandbuch anstelle dieses Leitfadens.

Vorteile der Migration

Eine natürliche Frage zu stellen, wenn Sie überlegen, ob eine neue Version oder Bibliothek angenommen werden soll, ist ihre Vorteile. Da Azure reift und von einer vielfältigen Gruppe von Entwicklern übernommen wurde, haben wir uns darauf konzentriert, die Muster und Methoden zu erlernen, um die Produktivität von Entwicklern zu verbessern und die Lücken zu verstehen, die die Spring Cloud Azure-Bibliotheken aufweisen.

Es gab mehrere Bereiche eines konsistenten Feedbacks, das in den Spring Cloud Azure-Bibliotheken ausgedrückt wurde. Am wichtigsten ist, dass die Bibliotheken für verschiedene Azure-Dienste nicht den vollständigen Satz von Konfigurationen aktiviert haben. Darüber hinaus hat die Inkonsistenz der Projektbenennung, Artefakt-IDs, Versionen und Konfigurationen die Lernkurve steil gestaltet.

Um die Entwicklungserfahrung in Spring Cloud Azure-Bibliotheken zu verbessern, wurde eine Reihe von Designrichtlinien eingeführt, um sicherzustellen, dass Spring Cloud Azure-Bibliotheken ein natürliches und idiomatisches Verhalten im Hinblick auf das Spring-Ökosystem haben. Weitere Details finden Sie im Designdokument für interessierte Personen.

Spring Cloud Azure 4.0 bietet die gemeinsame Erfahrung in Bibliotheken, die in verschiedene Spring-Projekte integriert werden, z. B. Spring Boot, Spring Integration, Spring Cloud Stream usw. Die gemeinsame Benutzeroberfläche umfasst:

  • Eine einheitliche BOM, die alle Spring Cloud Azure 4.0-Bibliotheken enthält.
  • Eine konsistente Benennungskonvention für Artefakte.
  • Eine einheitliche Möglichkeit zum Konfigurieren von Anmeldeinformationen, Proxy, Wiederholung, Cloudumgebung und Transportebeneneinstellungen.
  • Unterstützen aller Authentifizierungsmethoden, die ein Azure Service- oder Azure Service SDK unterstützt.

Überblick

Dieser Migrationsleitfaden besteht aus den folgenden Abschnitten:

  • Namensänderungen für Spring Cloud Azure 4.0
  • Artefaktänderungen: umbenannt/hinzugefügt/gelöscht
  • Abhängigkeitsänderungen
  • Authentifizierungsänderungen
  • Konfigurationseigenschaften
  • Breaking Changes bei der API
  • Bibliotheksänderungen

Benennungsänderungen

Es gab nie einen konsistenten oder offiziellen Namen, um alle Spring Cloud Azure-Bibliotheken aufzurufen. Einige von ihnen wurden aufgerufen Azure Spring Boot und einige von ihnen Spring on Azure. Seit 4.0 haben wir begonnen, den Projektnamen Spring Cloud Azure zu verwenden, um alle Azure Spring-Bibliotheken darzustellen.

Stückliste

Wir haben verwendet, zwei BOMs für unsere Bibliotheken, die azure-spring-boot-bom und azure-spring-cloud-dependencies, aber wir kombinierten diese beiden BOMs in einer BOM seit 4.0, der spring-cloud-azure-dependencies. Fügen Sie einen Eintrag im dependencyManagement Abschnitt Ihres Projekts hinzu, um von der Abhängigkeitsverwaltung zu profitieren.

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

Hinweis

Wenn Sie Spring Boot 3.x verwenden, stellen Sie sicher, dass Sie die spring-cloud-azure-dependencies Version auf 5.8.0. Weitere Informationen zur spring-cloud-azure-dependencies Version finden Sie unter Welche Version von Spring Cloud Azure sollte ich verwenden.

Artefaktänderungen: umbenannt/hinzugefügt/gelöscht

Gruppen-IDs sind für moderne und ältere Spring Cloud Azure-Bibliotheken identisch. Sie sind alle com.azure.spring. Artefakt-IDs für die modernen Spring Cloud Azure-Bibliotheken wurden geändert. Nach welchem Spring-Projekt es gehört, Spring Boot, Spring Integration oder Spring Cloud Stream, könnte das Artefakt-IDs-Muster sein spring-cloud-azure-starter-[service], spring-integration-azure-[service]oder spring-cloud-azure-stream-binder-[service]. Die Legacystarter für jede haben eine Artefakt-ID nach dem Muster azure-spring-*. Dies bietet ein schnelles und barrierefreies Mittel, um auf einen Blick zu verstehen, ob Sie moderne oder ältere Starter verwenden.

Im Prozess der Entwicklung von Spring Cloud Azure 4.0 haben wir einige Artefakte umbenannt, um sie den neuen Benennungskonventionen zu folgen, einige Artefakte gelöscht, sodass die Funktionalität in ein geeigneteres Artefakt eingefügt und einige neue Artefakte hinzugefügt wurden, um einige Szenarien besser zu bedienen.

Die folgende Tabelle zeigt die Zuordnungen zwischen legacyartefakt-ID und moderner Artefakt-ID:

Legacyartefakte-ID Moderne Artefakt-ID Beschreibung
azure-spring-boot-starter spring-cloud-azure-starter Dieses Artefakt wurde mit allen Funktionen gelöscht, die mit dem neuen spring-cloud-azure-starter Artefakt zusammengeführt werden.
azure-spring-boot-starter-active-directory spring-cloud-azure-starter-active-directory Das Artefakt wurde umbenannt.
azure-spring-boot-starter-active-directory-b2c spring-cloud-azure-starter-active-directory-b2c Das Artefakt wurde umbenannt.
azure-spring-boot-starter-cosmos spring-cloud-azure-starter-data-cosmos Das hinzuzufügende dataArtefakt wurde umbenannt, der mit Spring Data Azure Cosmos DB angibt.
azure-spring-boot-starter-keyvault-certificates nicht zutreffend Nicht in dieser Version enthalten, wird aber in späterer Version unterstützt.
azure-spring-boot-starter-keyvault-secrets spring-cloud-azure-starter-keyvault-secrets Das Artefakt wurde umbenannt.
azure-spring-boot-starter-servicebus-jms spring-cloud-azure-starter-servicebus-jms Das Artefakt wurde umbenannt.
Azure-spring-boot-starter-storage spring-cloud-azure-starter-storage-blob
spring-cloud-azure-starter-storage-file-share
Das Legacyartefakt enthält die Funktionalität von Storage Blob und Dateifreigabe, es wurde in zwei separate Artefakte in 4.0, spring-cloud-azure-starter-storage-blob und spring-cloud-azure-starter-storage-file-share kompliziert.
azure-spring-boot nicht zutreffend Dieses Artefakt wurde mit allen Funktionen gelöscht, die mit dem neuen spring-cloud-azure-autoconfigure Artefakt zusammengeführt werden.
azure-spring-cloud-autoconfigure nicht zutreffend Dieses Artefakt wurde mit allen Funktionen gelöscht, die mit dem neuen spring-cloud-azure-autoconfigure Artefakt zusammengeführt werden.
Azure-spring-cloud-context nicht zutreffend Dieses Artefakt wurde mit allen Funktionen gelöscht, die mit den neuen spring-cloud-azure-autoconfigure und spring-cloud-azure-resourcemanager Artefakten zusammengeführt werden.
azure-spring-cloud-messaging spring-messaging-azure Die Messaginglisteneranmerkung wurde gelöscht.
azure-spring-cloud-starter-cache nicht zutreffend Dieses Artefakt wurde für die Verwendung von Redis einfach spring-boot-starter-data-redis, spring-boot-starter-cache, spring-cloud-azure-resourcemanager und spring-cloud-azure-starter gelöscht. Weitere Informationen zur Verwendung finden Sie unter Spring Cloud Azure Redis-Support.
azure-spring-cloud-starter-eventhubs-kafka nicht zutreffend Dieses Artefakt wurde für die Verwendung von Kafka gelöscht, fügen Sie einfach spring kafka, spring-cloud-azure-resourcemanager und spring-cloud-azure-starter hinzu. Weitere Informationen zur Verwendung finden Sie unter Spring Cloud Azure Kafka-Support.
azure-spring-cloud-starter-eventhubs spring-cloud-azure-starter-integration-eventhubs Das hinzuzufügende integrationArtefakt wurde umbenannt, das die Spring-Integration mit Event Hubs angibt.
azure-spring-cloud-starter-servicebus spring-cloud-azure-starter-integration-servicebus Das hinzugefügte Artefakt integrationwurde umbenannt, der die Federintegration mit Service Bus angibt.
Azure-spring-cloud-starter-storage-queue spring-cloud-azure-starter-integration-storage-queue Das hinzuzufügende integrationArtefakt wurde umbenannt, das die Federintegration in die Speicherwarteschlange angibt.
Azure-spring-Cloud-Speicher nicht zutreffend Dieses Artefakt wurde mit allen Funktionen gelöscht, die mit dem neuen spring-cloud-azure-autoconfigure Artefakt zusammengeführt wurden.
azure-spring-cloud-stream-binder-eventhubs spring-cloud-azure-stream-binder-eventhubs Dieses Artefakt wurde mithilfe eines neuen Designs Standard und spring-cloud-azure-stream-binder-eventhubsspring-cloud-azure-stream-binder-eventhubs-coreumgestaltet.
azure-spring-cloud-stream-binder-service-core spring-cloud-azure-stream-binder-servicebus-core Das Artefakt wurde umbenannt.
azure-spring-cloud-stream-binder-servicebus-queue spring-cloud-azure-stream-binder-servicebus Dieses Artefakt wurde mit allen Funktionen gelöscht, die mit dem spring-cloud-azure-stream-binder-servicebus Artefakt zusammengeführt werden.
Azure-spring-cloud-stream-binder-servicebus-topic spring-cloud-azure-stream-binder-servicebus Dieses Artefakt wurde mit allen Funktionen gelöscht, die mit dem spring-cloud-azure-stream-binder-servicebus Artefakt zusammengeführt werden.
azure-spring-integration-core spring-integration-azure-core Das Artefakt wurde umbenannt.
azure-spring-integration-eventhubs spring-integration-azure-eventhubs Benennen Sie das Artefakt um.
azure-spring-integration-servicebus spring-integration-azure-servicebus Benennen Sie das Artefakt um.
Azure-spring-integration-storage-queue spring-integration-azure-storage-queue Benennen Sie das Artefakt um.
nicht zutreffend spring-cloud-azure-aktor Das neu hinzugefügte Spring Cloud Azure Actuator Artefakt.
nicht zutreffend spring-cloud-azure-actuator-autoconfigure Das neu hinzugefügte Spring Cloud Azure Actuator AutoConfigure-Artefakt, einschließlich der automatischen Konfiguration für Aktoren.
nicht zutreffend spring-cloud-azure-autoconfigure Neu hinzugefügtes Spring Cloud Azure AutoConfigure-Artefakt, einschließlich aller automatischen Konfiguration für SDK-Clients, Spring Security-Unterstützung, Spring Data-Unterstützung und Spring Integration-Unterstützung.
nicht zutreffend spring-cloud-azure-core Neu hinzugefügtes Spring Cloud Azure Core-Artefakt, einschließlich aller Kernfunktionen.
nicht zutreffend spring-cloud-azure-resourcemanager Neu hinzugefügtes Ressourcen-Manager-Artefakt. Es ist die Kernbibliothek mit Azure Resource Manager, um Metadaten zu lesen und Ressourcen zu erstellen.
nicht zutreffend spring-cloud-azure-service Neu hinzugefügtes Spring Cloud Azure Service-Artefakt, einschließlich Abstraktionen für Azure-Dienste.
nicht zutreffend spring-cloud-azure-starter-appconfiguration Neu hinzugefügter Start für die Verwendung Azure-App Configuration SDK-Clients.
nicht zutreffend spring-cloud-azure-starter-cosmos Neu hinzugefügter Start für die Verwendung des Azure Cosmos DB SDK-Clients.
nicht zutreffend spring-cloud-azure-starter-eventhubs Neu hinzugefügter Start für die Verwendung des Azure Event Hubs SDK-Clients.
nicht zutreffend spring-cloud-azure-starter-servicebus Neu hinzugefügter Start für die Verwendung des Azure Service Bus SDK-Clients.
nicht zutreffend spring-cloud-azure-starter-storage-blob Neu hinzugefügter Start für die Verwendung des Azure Storage Blob SDK-Clients.
nicht zutreffend spring-cloud-azure-starter-storage-file-share Neu hinzugefügter Start für die Verwendung des Azure Storage File Share SDK-Clients.
nicht zutreffend spring-cloud-azure-starter-storage-queue Neu hinzugefügter Start für die Verwendung des Azure Storage Queue SDK-Clients.
nicht zutreffend spring-cloud-azure-starter-stream-eventhubs Neu hinzugefügter Start für die Verwendung von Azure Event Hubs Spring Cloud Stream Binder.
nicht zutreffend spring-cloud-azure-starter-stream-servicebus Neu hinzugefügter Start für die Verwendung von Azure Service Bus Spring Cloud Stream Binder
nicht zutreffend spring-cloud-azure-stream-binder-eventhubs-core Neu hinzugefügtes Spring Cloud Stream-Kernelement für Azure Event Hubs.

Abhängigkeitsänderungen

Einige unnötige Abhängigkeiten wurden in den älteren Artefakten enthalten, die wir in den modernen Spring Cloud Azure 4.0-Bibliotheken entfernt haben. Achten Sie darauf, die entfernten Abhängigkeiten manuell zu Ihrem Projekt hinzuzufügen, um Abstürze zu verhindern.

Bibliotheken mit Abhängigkeitsänderungen umfassen:

Authentifizierungsänderungen

Spring Cloud Azure 4.0 unterstützt alle Authentifizierungsmethoden, die jedes Azure Service SDK unterstützt. Damit können Sie globale Tokenanmeldeinformationen konfigurieren sowie die Tokenanmeldeinformationen auf jeder Dienstebene bereitstellen. Zum Konfigurieren von Spring Cloud Azure 4.0 ist jedoch keine Anmeldeinformationen erforderlich, da sie die in einer lokalen Entwicklungsumgebung oder verwalteten Identität in Azure Services gespeicherten Anmeldeinformationen anwenden kann. Stellen Sie nur sicher, dass dem Prinzipal ausreichende Berechtigungen für den Zugriff auf die Azure-Zielressourcen erteilt wurden.

Hinweis

Wenn Sie den Sicherheitsprinzipalen Rollen für die Interaktion mit Azure-Messagingdiensten zuweisen, sind die zugehörigen Rollen für die Data Durchführung von Messagingvorgängen erforderlich. Für Azure Spring Apps Stream Event Hubs /Service Bus Binder-Bibliotheken ist die Rolle erforderlich, Contributor wenn die Funktion der automatischen Erstellung von Ressourcen erforderlich ist. Weitere Informationen finden Sie unter Integrierte Azure-Rollen.

Eine verkettete Anmeldeinformation, der DefaultAzureCredential Bean ist standardmäßig automatisch konfiguriert und wird von allen Komponenten verwendet, wenn keine weiteren Authentifizierungsinformationen angegeben werden. Weitere Informationen finden Sie im Abschnitt "DefaultAzureCredential " der Azure Identity-Clientbibliothek für Java.

Konfigurationseigenschaften

Eigenschaftenmigration

Wir haben eine zusätzliche Spring-configuration-metadata.json-Datei erstellt, um die Eigenschaftsmigration bei Verwendung mit spring-boot-properties-migratorzu glätten. Fügen Sie zunächst der Anwendung den folgenden Eigenschafts-Migrationsdienst hinzu:

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

Oder wenn Sie Gradle verwenden:

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

Wenn Sie die App ausführen, werden die Eigenschaften identifiziert, die von Spring Cloud Azure nicht mehr verwaltet werden. Wenn ein Ersatz vorhanden ist, wird die Eigenschaft vorübergehend mit einer Warnung neu zugeordnet. Wenn kein Ersatz vorhanden ist, erhalten Sie in einem Fehlerbericht weitere Informationen. Auf beide Weise muss die Konfiguration aktualisiert und die Abhängigkeit entfernt werden, nachdem Sie die Konfiguration aktualisiert haben.

Bevor Sie fortfahren, empfiehlt es sich, die Suchfunktion Ihrer IDE zu verwenden, um zu überprüfen, ob Sie keine der Eigenschaften verwenden, die Sie in einem Integrationstest migriert haben.

Hinweis

Wir haben viele Konfigurationseigenschaften in dieser Änderung geändert. Die Verwendung der spring-boot-properties-migrator Daten trägt dazu bei, die Migration zu glätten.

Globale Konfigurationen

Mit der modernen spring-cloud-azure-starter Option können Sie Eigenschaften definieren, die für alle Azure-SDKs im Namespace spring.cloud.azuregelten. Dieses Feature wurde in der Legacyversion azure-spring-boot-starternicht unterstützt. Die globalen Konfigurationen können in fünf Kategorien unterteilt werden, die in der folgenden Tabelle dargestellt sind:

Präfix Beschreibung
spring.cloud.azure.client Konfiguriert die Transportclients unter jedem Azure SDK.
spring.cloud.azure.credential Konfiguriert, wie die Authentifizierung mit der Microsoft Entra-ID funktioniert.
spring.cloud.azure.profile Konfiguriert die Azure-Cloudumgebung.
spring.cloud.azure.proxy Konfiguriert die Proxyoptionen, die für alle Azure SDK-Clients gelten.
spring.cloud.azure.retry Konfiguriert die Wiederholungsoptionen, die für alle Azure SDK-Clients gelten. Die Wiederholungsoptionen haben einen Teil der SDKs unterstützt, es gibt keine spring.cloud.azure.cosmos.retry.

Eine vollständige Liste der Konfigurationen finden Sie unter Spring Cloud Azure-Konfigurationseigenschaften.

Konfigurieren der einzelnen SDK-Dateien

Ausführliche Informationen zu den Konfigurationsoptionen auf SDK-Ebene finden Sie unter den folgenden Links:

Breaking Changes bei der API

Ausführliche Informationen zu änderungen am API-Bruch in den einzelnen Bibliotheken erhalten Sie unter den folgenden Links:

Bibliotheksänderungen

Die Änderungen in den einzelnen Bibliotheken werden wie folgt eingeführt.

Von azure-spring-boot-starter bis spring-cloud-azure-starter

Dieser Leitfaden soll die Migration zu spring-cloud-azure-starter ab Version 3 von azure-spring-boot-starter unterstützen.

Verwenden Sie für allgemeine Informationen die folgenden Links:

Abhängigkeitsänderungen

Einige unnötige Abhängigkeiten wurden in den älteren Artefakten enthalten, die wir in den modernen Spring Cloud Azure 4.0-Bibliotheken entfernt haben. Achten Sie darauf, die entfernten Abhängigkeiten manuell zu Ihrem Projekt hinzuzufügen, um unbeabsichtigten Absturz zu verhindern.

Die folgende Tabelle zeigt die entfernten Abhängigkeiten:

Entfernte Abhängigkeiten Beschreibung
org.springframework.boot:spring-boot-starter-validation Schließen Sie den Überprüfungsstarter ein, wenn Sie "Hibernate Validator" verwenden möchten.

Von azure-spring-boot-starter-active-directory bis spring-cloud-azure-starter-active-directory

Dieses Handbuch soll die Migration zu spring-cloud-azure-starter-active-directory ab Version 3 von azure-spring-boot-starter-active-directory unterstützen.

Verwenden Sie für allgemeine Informationen die folgenden Links:

Abhängigkeitsänderungen

Einige unnötige Abhängigkeiten im Legacyartefakt wurden seit der modernen Spring Cloud Azure 4.0-Bibliothek entfernt. Fügen Sie diese entfernten Abhängigkeiten zu Ihrem Projekt hinzu, um unbeabsichtigten Absturz zu verhindern.

Die folgende Tabelle zeigt die entfernten Abhängigkeiten:

Entfernte Abhängigkeiten Beschreibung
com.fasterxml.jackson.core:jackson-databind Fügen Sie diese Abhängigkeit bei Bedarf zu Ihrem Projekt hinzu.
io.projectreactor.netty:reactor-netty Fügen Sie diese Abhängigkeit bei Bedarf zu Ihrem Projekt hinzu.
org.springframework.boot:spring-boot-starter-validation Fügen Sie diese Abhängigkeit bei Bedarf zu Ihrem Projekt hinzu.
org.springframework.boot:spring-boot-starter-webflux Fügen Sie diese Abhängigkeit bei Bedarf zu Ihrem Projekt hinzu.

SDK-Konfigurationsänderungen

Dieser Abschnitt enthält die Änderungen zu den hinzugefügten, entfernten und geänderten Eigenschaften.

  • Die folgenden beiden Punkte sind die Standard, auf die Sie achten müssen:
  1. Das Präfix aller Konfigurationseigenschaftennamen wurde von zu spring.cloud.azure.active-directory" geändert.azure.activedirectory
  2. Neue Eigenschaft spring.cloud.azure.active-directory.enabled wird hinzugefügt, um Microsoft Entra-bezogene Features zu aktivieren/zu deaktivieren. Der Standardwert ist false.

Die folgende Tabelle zeigt die Eigenschaftenzuordnungen zwischen azure-spring-boot-starter-active-directory und spring-cloud-azure-starter-active-directory:

Legacyeigenschaften Moderne Eigenschaften
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 Weitere Informationen finden Sie in der folgenden Tabelle.
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-lebensdauer spring.cloud.azure.active-directory.jwk-set-cache-lebensdauer.
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
  • Der Werttyp der folgenden Eigenschaften wird von long :Duration

    • jwt-connect-timeout
    • jwt-read-timeout
    • jwk-set-cache-lifespan
    • jwk-set-cache-refresh-time.
  • Die folgenden Eigenschaften werden entfernt:

    • azure.activedirectory.allow-telemetry
    • azure.activedirectory.user-group.enable-full-list
    • azure.activedirectory.graph-base-uri
    • azure.activedirectory.graph-membership-uri
  • Die folgenden Eigenschaften werden hinzugefügt:

    • 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

Hinweis

Die Funktion von azure.activedirectory.graph-membership-uri wurde durch 2 Eigenschaften ersetzt: spring.cloud.azure.active-directory.profile.environment.microsoft-graph-endpoint und spring.cloud.azure.active-directory.user-group.use-transitive-members. Die erste Eigenschaft wird verwendet, um den Hostnamen anzugeben, und das zweite flag für die Verwendung des URL-Pfads: v1.0/me/memberOf oder v1.0/me/transitiveMemberOf.

Hier sind einige Beispiele für die Migration:

  • Beispiel 1: Fall 1

    • Für Legacy: azure.activedirectory.graph-membership-uri=https://graph.microsoft.com/v1.0/me/memberOf

    • Für modern: 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

  • Beispiel 2: Fall 2

    • Für Legacy: azure.activedirectory.graph-membership-uri=https://graph.microsoft.com/v1.0/me/transitiveMemberOf

    • Für modern: 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

API-Änderungen

Die folgende Tabelle zeigt die Klassenzuordnungen von azure-spring-boot-starter-active-directory :spring-cloud-azure-starter-active-directory

Legacyklasse Moderne Klasse
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

In diesem Abschnitt werden die entfernten Klassen aus azure-spring-boot-starter-active-directory aufgelistet.

  • Legacyklasse entfernt

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

Von azure-spring-boot-starter-active-directory-b2c bis spring-cloud-azure-starter-active-directory-b2c

Dieses Handbuch soll die Migration zu spring-cloud-azure-starter-active-directory-b2c ab Version 3 von azure-spring-boot-starter-active-directory-b2c unterstützen.

Verwenden Sie für allgemeine Informationen die folgenden Links:

Abhängigkeitsänderungen

Einige unnötige Abhängigkeiten wurden in den älteren Artefakten enthalten, die wir in den modernen Spring Cloud Azure 4.0-Bibliotheken entfernt haben. Achten Sie darauf, die entfernten Abhängigkeiten manuell zu Ihrem Projekt hinzuzufügen, um unbeabsichtigten Absturz zu verhindern.

Die folgende Tabelle zeigt die entfernten Abhängigkeiten:

Entfernte Abhängigkeiten Beschreibung
org.springframework.boot:spring-boot-starter-validation Schließen Sie den Überprüfungsstarter ein, wenn Sie "Hibernate Validator" verwenden möchten.

SDK-Konfigurationsänderungen

Dieser Abschnitt enthält die Änderungen zu den hinzugefügten, entfernten und geänderten Eigenschaften.

  • Die folgenden beiden Punkte sind die Standard, auf die Sie achten müssen:
  1. Alle Konfigurationseigenschaftennamen haben das Präfix von azure.activedirectory.b2c zu " geändert spring.cloud.azure.active-directory.b2c.
  2. Neue Eigenschaft spring.cloud.azure.active-directory.b2c.enabled wird hinzugefügt, um Azure AD B2C-bezogene Features zu aktivieren/zu deaktivieren. Der Standardwert ist „FALSE“.

In der folgenden Tabelle sind die Eigenschaftenzuordnungen von azure-spring-boot-starter-active-directory-b2c zu spring-cloud-azure-starter-active-directory-b2c:

Legacyeigenschaften Moderne Eigenschaften
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
  • Eigenschaften aus azure-spring-boot-starter-active-directory-b2c entfernt:

    • azure.activedirectory.b2c.allow-telemetry
    • azure.activedirectory.b2c.tenant
  • Der Werttyp der folgenden Eigenschaften wird von long :Duration

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

API-Änderungen

Die folgende Tabelle zeigt die Klassenzuordnungen von azure-spring-boot-starter-active-directory-b2c :spring-cloud-azure-starter-active-directory-b2c

Legacyklasse Moderne Klasse
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

Von azure-spring-boot-starter-cosmos bis spring-cloud-azure-starter-data-cosmos

Dieser Leitfaden soll die Migration zu spring-cloud-azure-starter-data-cosmos ab Version 3 von azure-spring-boot-starter-cosmos unterstützen.

Verwenden Sie für allgemeine Informationen die folgenden Links:

SDK-Konfigurationsänderungen

Alle Konfigurationseigenschaftennamen haben das Präfix von azure.cosmos zu " geändert spring.cloud.azure.cosmos.

Die folgende Tabelle zeigt die Klassenzuordnungen von azure-spring-boot-starter-cosmos :spring-cloud-azure-starter-data-cosmos

Legacyeigenschaften Moderne Eigenschaften
azure.cosmos.connection-mode spring.cloud.azure.cosmos.connection-mode
azure.cosmos.consistency-level spring.cloud.azure.cosmos.consistency-level
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

Von azure-spring-boot-starter-keyvault-secrets bis spring-cloud-azure-starter-keyvault-secrets

Dieser Leitfaden soll die Migration zu spring-cloud-azure-starter-keyvault-secrets ab Version 3 von azure-spring-boot-starter-keyvault-secrets unterstützen.

Verwenden Sie für allgemeine Informationen die folgenden Links:

SDK-Konfigurationsänderungen

Dieser Abschnitt enthält die Änderungen zu den hinzugefügten, entfernten und geänderten Eigenschaften.

In der folgenden Tabelle sind die Eigenschaftenzuordnungen von azure-spring-boot-starter-keyvault-secrets zu spring-cloud-azure-starter-keyvault-secrets:

Legacyeigenschaften Moderne Eigenschaften
azure.keyvault.case-sensitive-keys spring.cloud.azure.keyvault.secret.property-source[n].Groß-/Kleinschreibung beachten
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 and spring.cloud.azure.keyvault.secret.property-source-enabled
azure.keyvault.order Nicht mehr unterstützt. Verwenden Sie stattdessen die Reihenfolge in property-source[n].
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
  • Eigenschaften aus spring-cloud-azure-starter-keyvault-secrets entfernt

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

Die folgenden Punkte sollten Sie beachten:

  1. Alle Konfigurationseigenschaftennamen haben das Präfix von azure.keyvault zu " geändert spring.cloud.azure.keyvault.secret.
  2. spring.cloud.azure.keyvault.secret.enabledwird verwendet, um alle Key Vault Secret-Features zu aktivieren, einschließlich der Konfiguration des geheimen Schlüsseltresor-Clientbohnen (wie SecretClient und SecretAsyncClient) und hinzufügen.KeyVaultPropertySourceConfigurableEnvironment
  3. spring.cloud.azure.keyvault.secret.property-source-enabled wird verwendet, um alle KeyVaultPropertySourcezu aktivieren. Es wird nur wirksam, wenn spring.cloud.azure.keyvault.secret.enabled=true.
  4. Für allgemeine Azure-Eigenschaften (zclient. B. , , proxy, credentialretry, profile) und Key Vault-Eigenschaften (zendpoint. B. , service-version). Wenn spring.cloud.azure.keyvault.secret.property-sources[n].PROPERTY_NAME sie nicht konfiguriert ist, spring.cloud.azure.keyvault.secret.PROPERTY_NAME wird sie verwendet.
  5. spring.cloud.azure.keyvault.secret.property-sources[n].resource ist spezifisch für eine eindeutige Azure-Ressource. Wenn sie also nicht konfiguriert ist, erhält sie keinen Wert von anderen Orten.

Von azure-spring-boot-starter-servicebus-jms bis spring-cloud-azure-starter-servicebus-jms

Dieser Leitfaden soll die Migration zu spring-cloud-azure-starter-servicebus-jms ab Version 3 von azure-spring-boot-starter-servicebus-jms unterstützen.

Verwenden Sie für allgemeine Informationen die folgenden Links:

SDK-Konfigurationsänderungen

Konfigurationstyp für spring.jms.servicebus.idle-timeout den Wechsel von long(Millisekunden) in Duration ein Muster zur Lesbarkeit.

Von azure-spring-boot-starter-storage bis spring-cloud-azure-starter-storage-blob

Dieses Handbuch soll die Migration zu spring-cloud-azure-starter-storage-blob ab Version 3 von Azure-spring-boot-starter-storage unterstützen.

Verwenden Sie für allgemeine Informationen die folgenden Links:

SDK-Konfigurationsänderungen

Alle Konfigurationseigenschaftennamen haben das Präfix von azure.storage zu " geändert spring.cloud.azure.storage.blob.

In der folgenden Tabelle sind die Eigenschaftenzuordnungen von azure-spring-boot-starter-storage zu spring-cloud-azure-starter-storage-blob:

Legacyeigenschaften Moderne Eigenschaften
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

API-Änderungen

Die folgende Tabelle zeigt die Klassenzuordnungen von azure-spring-boot-starter-storage :spring-cloud-azure-starter-storage-blob

Legacyklasse Moderne Klasse
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

Von azure-spring-boot-starter-storage bis spring-cloud-azure-starter-storage-file-share

Dieser Leitfaden soll die Migration zu spring-cloud-azure-starter-storage-file-share ab Version 3 von azure-spring-boot-starter-storage unterstützen.

Verwenden Sie für allgemeine Informationen die folgenden Links:

SDK-Konfigurationsänderungen

Alle Konfigurationseigenschaftennamen haben das Präfix von azure.storage zu " geändert spring.cloud.azure.storage.fileshare.

In der folgenden Tabelle sind die Eigenschaftenzuordnungen von azure-spring-boot-starter-storage zu spring-cloud-azure-starter-storage-file-share:

Legacyeigenschaften Moderne Eigenschaften
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

API-Änderungen

Die folgende Tabelle zeigt die Klassenzuordnungen von azure-spring-boot-starter-storage :spring-cloud-azure-starter-storage-file-share

Legacyklasse Moderne Klasse
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

Von azure-spring-cloud-starter-eventhubs bis spring-cloud-azure-starter-integration-eventhubs

Dieser Leitfaden soll die Migration zu spring-cloud-azure-starter-integration-eventhubs ab Version 2 von azure-spring-cloud-starter-eventhubs unterstützen.

Verwenden Sie für allgemeine Informationen die folgenden Links:

SDK-Konfigurationsänderungen

Wichtig

Konfigurationspräfix wurde von spring.cloud.azure.eventhub zu spring.cloud.azure.eventhubs.

Änderungen an den untergeordneten Einträgen für dieses Präfix finden Sie in den folgenden Tabellen:

In der folgenden Tabelle sind Eigenschaftenzuordnungen von azure-spring-cloud-starter-eventhubs zu spring-cloud-azure-starter-integration-eventhubs:

Legacyeigenschaften Moderne Eigenschaften
spring.cloud.azure.resource-group spring.cloud.azure.eventhubs.resource.resource-group
spring.cloud.azure.eventhub.namespace 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

Ändern Sie z. B. von:

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}

in:

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}

API-Änderungen

  • Die Änderungen an den Listeneranmerkungen finden Sie im Migrationsleitfaden der Migrationsleitfaden der <<Migrations-azure-spring-cloud-messaging, azure-spring-cloud-messaging-Bibliothek>> .
  • Drop EventHubOperation mit der abonnierenden Funktion, die in die Klasse EventHubsMessageListenerContainer verschoben wurde, und die sendende Funktion in .EventHubsTemplate
  • EventHubsInboundChannelAdapter Benennen Sie EventHubInboundChannelAdapter sie so um, dass sie mit dem Dienst von Azure Event Hubs konsistent bleiben.
  • Ändern Sie den Konstruktor von EventHubInboundChannelAdapter(String, SubscribeByGroupOperation, String) zu EventHubsInboundChannelAdapter(EventHubsMessageListenerContainer) und EventHubsInboundChannelAdapter(EventHubsMessageListenerContainer, ListenerMode).
  • Ändern Sie CheckpointConfig die Instanziierungsformatvorlage in den einfachen Konstruktor anstelle des Buildstils.
  • Drop-API EventHubOperation#setCheckpointConfig. Um die Prüfpunktkonfiguration für den eingehenden Kanaladapter festzulegen, können Benutzer die Methode EventHubsContainerProperties#setCheckpointConfigaufrufen.
  • Drop-API EventHubOperation#setBatchConsumerConfig. Um die batchaufwendige Konfiguration für den Eingehenden Kanaladapter festzulegen, können Benutzer die beiden Methoden EventHubsContainerProperties#getBatch#setMaxSize aufrufen und EventHubsContainerProperties#getBatch#setMaxWaitTime in der Zwischenzeit.
  • Ändern Sie für den Modus "Batchverwendung" die nachrichtenkopfzeilennamen, die aus batchierten Nachrichten konvertiert wurden.
    • Ändern des Nachrichtenkopfs von azure_eventhub_enqueued_time zu azure_eventhubs_batch_converted_enqueued_time.
    • Ändern des Nachrichtenkopfs von azure_eventhub_offset zu azure_eventhubs_batch_converted_offset.
    • Ändern des Nachrichtenkopfs von azure_eventhub_sequence_number zu azure_eventhubs_batch_converted_sequence_number.
    • Ändern des Nachrichtenkopfs von azure_partition_key zu azure_batch_converted_partition_key.
  • Ignorieren Sie beim Veröffentlichen von Nachrichten in Event Hubs alle Nachrichtenkopfzeilen, die aus batchierten Nachrichten konvertiert wurden. Kopfzeilen umfassen:
    • 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
  • Der BATCH Prüfpunktmodus funktioniert jetzt nur im Batch-Nutzungsmodus, der durch Übergeben ListenerMode.BATCH an den EventHubsInboundChannelAdapter-Konstruktor aktiviert werden kann.

Die folgende Tabelle zeigt die Klassenzuordnungen von azure-spring-cloud-starter-eventhubs :spring-cloud-azure-starter-integration-eventhubs

Legacyklasse Moderne Klasse
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

Beispielcodeausschnitt

  • EventHubsInboundChannelAdapter Beispielcode:

    Legacycode:

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

    Moderner Code:

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

    Legacycode:

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

    Moderner Code:

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

Von azure-spring-integration-eventhubs bis spring-integration-azure-eventhubs

Dieser Leitfaden soll die Migration zu spring-integration-azure-eventhubs ab Version 2 von azure-spring-integration-eventhubs unterstützen.

API-Änderungen

  • Drop EventHubOperation mit der abonnierenden Funktion, die in die Klasse EventHubsMessageListenerContainer verschoben wurde, und die sendende Funktion in .EventHubsTemplate
  • EventHubsInboundChannelAdapter Benennen Sie EventHubInboundChannelAdapter sie so um, dass sie mit dem Dienst von Azure Event Hubs konsistent bleiben.
  • Ändern Sie den Konstruktor von EventHubInboundChannelAdapter(String, SubscribeByGroupOperation, String) zu EventHubsInboundChannelAdapter(EventHubsMessageListenerContainer) und EventHubsInboundChannelAdapter(EventHubsMessageListenerContainer, ListenerMode).
  • Ändern Sie CheckpointConfig die Instanziierungsformatvorlage in den einfachen Konstruktor anstelle des Buildstils.
  • Drop-API EventHubOperation#setCheckpointConfig. Um die Prüfpunktkonfiguration für den eingehenden Kanaladapter festzulegen, können Benutzer die Methode EventHubsContainerProperties#setCheckpointConfigaufrufen.
  • Drop-API EventHubOperation#setBatchConsumerConfig. Um die batchaufwendige Konfiguration für den Eingehenden Kanaladapter festzulegen, können Benutzer die beiden Methoden EventHubsContainerProperties#getBatch#setMaxSize aufrufen und EventHubsContainerProperties#getBatch#setMaxWaitTime in der Zwischenzeit.
  • Ändern Sie für den Modus "Batchverwendung" die nachrichtenkopfzeilennamen, die aus batchierten Nachrichten konvertiert wurden.
    • Ändern des Nachrichtenkopfs von azure_eventhub_enqueued_time zu azure_eventhubs_batch_converted_enqueued_time.
    • Ändern des Nachrichtenkopfs von azure_eventhub_offset zu azure_eventhubs_batch_converted_offset.
    • Ändern des Nachrichtenkopfs von azure_eventhub_sequence_number zu azure_eventhubs_batch_converted_sequence_number.
    • Ändern des Nachrichtenkopfs von azure_partition_key zu azure_batch_converted_partition_key.
  • Ignorieren Sie beim Veröffentlichen von Nachrichten in Event Hubs alle Nachrichtenkopfzeilen, die aus batchierten Nachrichten konvertiert wurden. Kopfzeilen umfassen:
    • 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
  • Der BATCH Prüfpunktmodus funktioniert jetzt nur im Batch-Nutzungsmodus, der durch Übergeben ListenerMode.BATCH an den EventHubsInboundChannelAdapter-Konstruktor aktiviert werden kann.

Die folgende Tabelle zeigt die Klassenzuordnungen von azure-spring-integration-eventhubs :spring-integration-azure-eventhubs

Legacyklasse Moderne Klasse
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

Von azure-spring-cloud-starter-servicebus bis spring-cloud-azure-starter-integration-servicebus

Dieser Leitfaden soll die Migration zu spring-cloud-azure-starter-integration-servicebus ab Version 2 von azure-spring-cloud-starter-servicebus unterstützen.

Verwenden Sie für allgemeine Informationen die folgenden Links:

SDK-Konfigurationsänderungen

Für alle konfigurationsoptionen, die in spring-cloud-azure-starter-integration-servicebus, das Präfix re Standard s as spring.cloud.azure.servicebus.

In der folgenden Tabelle sind die Eigenschaftenzuordnungen von azure-spring-cloud-starter-servicebus zu spring-cloud-azure-starter-integration-servicebus:

Legacyeigenschaften Moderne Eigenschaften
spring.cloud.azure.resource-group spring.cloud.azure.servicebus.resource.resource-group
spring.cloud.azure.servicebus.transport-type 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 or spring.cloud.azure.servicebus.retry.fixed.max-retries, should be configured depending on spring.cloud.azure.servicebus.retry.mode=fixed or exponential
spring.cloud.azure.servicebus.retry-options.delay spring.cloud.azure.servicebus.retry.exponential.base-delay oder spring.cloud.azure.servicebus.retry.fixed.delay, sollte je nach spring.cloud.azure.servicebus.retry.mode=fixed oder exponential konfiguriert werden.
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

API-Änderungen

  • Ablegen ServiceBusQueueOperation und ServiceBusTopicOperation mit der abonnierenden Funktion in die Klasse ServiceBusMessageListenerContainer und die sendende Funktion verschoben in ServiceBusTemplate.
  • Legen ServiceBusQueueInboundChannelAdapter Sie die Funktionalität ab, und ServiceBusTopicInboundChannelAdapterverschieben Sie die Funktionalität, um eine ServiceBus-Warteschlangen-/Themenentität auf ServiceBusInboundChannelAdapter zu überwachen.
  • Ändern Sie den Konstruktor von ServiceBusQueueInboundChannelAdapter(String, SubscribeByGroupOperation, String) zu ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer) und ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode).
  • Ändern Sie den Konstruktor von ServiceBusTopicInboundChannelAdapter(String, SubscribeByGroupOperation, String) zu ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer) und ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode).
  • Drop-APIs ServiceBusQueueOperation#setCheckpointConfig und ServiceBusTopicOperation#setCheckpointConfig. Um die Prüfpunktkonfiguration für den eingehenden Kanaladapter festzulegen, können Benutzer stattdessen die Methode ServiceBusContainerProperties#setAutoComplete aufrufen. Um den AutoVervollständigen-Modus zu deaktivieren, entspricht MANUAL dem Prüfpunktmodus, und um ihn zu aktivieren, wird der RECORD Modus ausgelöst.
  • Drop-APIs ServiceBusQueueOperatio#setClientConfig und ServiceBusTopicOperation#setClientConfig. Um den zugrunde liegenden, ServiceBusProcessorClient vom eingehenden Kanaladapter verwendeten Zusatz zu konfigurieren, können Benutzer stattdessen verwenden ServiceBusContainerProperties .
  • Legen Sie CompletableFuture stattdessen Support in ServiceBusTemplate und DefaultMessageHandler, Support Reactor ab.
  • Fügen Sie eine neue API hinzu ServiceBusTemplate#setDefaultEntityType , um den Entitätstyp anzugeben, der erforderlich ist, wenn keine Bohnen PropertiesSupplier&lt;String, ProducerProperties&gt; für die ProducerProperties#entityType.
  • Kopfzeile AzureHeaders.RAW_IDder Drop-Nachricht . Verwenden Sie stattdessen ServiceBusMessageHeaders.MESSAGE_ID.

Die folgende Tabelle zeigt die Klassenzuordnungen von azure-spring-cloud-starter-servicebus :spring-cloud-azure-starter-integration-servicebus

Legacyklasse Moderne Klasse
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

Beispielcodeausschnitt

  • ServiceBusInboundChannelAdapter Beispielcode:

    Legacycode der Verwendung ServiceBusQueueInboundChannelAdapter oder 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;
        }
    
    }
    

    Moderner Code:

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

    Legacycode mit Warteschlange als Beispiel:

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

    Moderner Code:

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

Vom azure-spring-integration-servicebus zum spring-integration-azure-servicebus

Dieser Leitfaden soll die Migration zu spring-integration-azure-servicebus ab Version 2 des Azure-spring-integration-servicebus unterstützen.

API-Änderungen

  • Ablegen ServiceBusQueueOperation und ServiceBusTopicOperation mit der abonnierenden Funktion in die Klasse ServiceBusMessageListenerContainer und die sendende Funktion verschoben in ServiceBusTemplate.
  • Legen ServiceBusQueueInboundChannelAdapter Sie die Funktionalität ab, und ServiceBusTopicInboundChannelAdapterverschieben Sie die Funktionalität, um eine ServiceBus-Warteschlangen-/Themenentität auf ServiceBusInboundChannelAdapter zu überwachen.
  • Ändern Sie den Konstruktor von ServiceBusQueueInboundChannelAdapter(String, SubscribeByGroupOperation, String) zu ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer) und ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode).
  • Ändern Sie den Konstruktor von ServiceBusTopicInboundChannelAdapter(String, SubscribeByGroupOperation, String) zu ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer) und ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode).
  • Drop-APIs ServiceBusQueueOperation#setCheckpointConfig und ServiceBusTopicOperation#setCheckpointConfig. Um die Prüfpunktkonfiguration für den eingehenden Kanaladapter festzulegen, können Benutzer stattdessen die Methode ServiceBusContainerProperties#setAutoComplete aufrufen. Um den AutoVervollständigen-Modus zu deaktivieren, entspricht MANUAL dem Prüfpunktmodus, und um ihn zu aktivieren, wird der RECORD Modus ausgelöst.
  • Drop-APIs ServiceBusQueueOperation#setClientConfig und ServiceBusTopicOperation#setClientConfig. Um den zugrunde liegenden, ServiceBusProcessorClient vom eingehenden Kanaladapter verwendeten Zusatz zu konfigurieren, können Benutzer stattdessen verwenden ServiceBusContainerProperties .
  • Legen Sie CompletableFuture stattdessen Support in ServiceBusTemplate und DefaultMessageHandler, Support Reactor ab.
  • Fügen Sie eine neue API hinzu ServiceBusTemplate#setDefaultEntityType , um den Entitätstyp anzugeben, der erforderlich ist, wenn keine Bohnen PropertiesSupplier&lt;String, ProducerProperties&gt; für die ProducerProperties#entityType.
  • Kopfzeile AzureHeaders.RAW_IDder Drop-Nachricht . Verwenden Sie stattdessen ServiceBusMessageHeaders.MESSAGE_ID.

Die folgende Tabelle zeigt die Klassenzuordnungen von azure-spring-integration-servicebus :spring-integration-azure-servicebus

Legacyklasse Moderne Klasse
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

Von azure-spring-cloud-starter-storage-queue bis spring-cloud-azure-starter-integration-storage-queue

Dieser Leitfaden soll die Migration zu spring-cloud-azure-starter-integration-storage-queue ab Version 2 von azure-spring-cloud-starter-storage-queue unterstützen.

Verwenden Sie für allgemeine Informationen die folgenden Links:

SDK-Konfigurationsänderungen

Alle Konfigurationseigenschaftennamen haben das Präfix von spring.cloud.azure.storage zu " geändert spring.cloud.azure.storage.queue.

In der folgenden Tabelle sind die Eigenschaftenzuordnungen von azure-spring-cloud-starter-storage-queue zu spring-cloud-azure-starter-integration-storage-queue:

Legacyeigenschaften Moderne Eigenschaften
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

API-Änderungen

  • Legen Sie StorageQueueOperation stattdessen ab, und geben Sie es an StorageQueueTemplate .
  • Drop checkpoint-mode configuration in StorageQueueTemplate, only support the MANUAL mode.

Die folgende Tabelle zeigt die Klassenzuordnungen von azure-spring-cloud-starter-storage-queue zu spring-cloud-azure-starter-integration-storage-queue.

Legacyklasse Moderne Klasse
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

Von azure-spring-integration-storage-queue bis spring-integration-azure-storage-queue

Dieser Leitfaden soll die Migration zur Spring-integration-azure-storage-queue ab Version 2 der Azure-spring-integration-storage-queue unterstützen.

API-Änderungen

  • Legen Sie StorageQueueOperation stattdessen ab, und geben Sie es an StorageQueueTemplate .
  • Drop checkpoint-mode configuration in StorageQueueTemplate, only support the MANUAL mode.

Die folgende Tabelle zeigt die Klassenzuordnungen von azure-spring-integration-storage-queue zu spring-integration-azure-storage-queue.

Legacyklasse Moderne Klasse
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

Von azure-spring-cloud-stream-binder-eventhubs bis spring-cloud-azure-stream-binder-eventhubs

Dieser Leitfaden soll die Migration zu spring-cloud-azure-stream-binder-eventhubs ab Version 2 von azure-spring-cloud-stream-binder-eventhubs unterstützen.

Verwenden Sie für allgemeine Informationen die folgenden Links:

SDK-Konfigurationsänderungen

Wichtig

Konfigurationspräfix wurde von spring.cloud.azure.eventhub zu spring.cloud.azure.eventhubs.

Wichtig

Der Ordnertyp wird von: eventhub in eventhubs.

Änderungen an den untergeordneten Einträgen für das folgende Präfix finden Sie in der folgenden Tabelle.

In der folgenden Tabelle sind Eigenschaftenzuordnungen von azure-spring-cloud-stream-binder-eventhubs zu spring-cloud-azure-stream-binder-eventhubs:

Legacyeigenschaften Moderne Eigenschaften
spring.cloud.azure.resource-group spring.cloud.azure.eventhubs.resource.resource-group
spring.cloud.azure.eventhub.namespace 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

Hinweis

Der Werttyp der start-position Konfiguration wird auch von einer Enumeration von com.azure.spring.integration.core.api.StartPosition zu einer map der StartPositionProperties für jede Partition geändert. Daher ist der Schlüssel die Partitions-ID, und der Wert enthält com.azure.spring.cloud.service.eventhubs.properties.StartPositionProperties Eigenschaften von Offset, Sequenznummer, enqueuierte Datumszeit und ob einschließlich.

Beispiele für die Konfigurationsmigration

Um die Verbindungszeichenfolge für die Authentifizierung zu verwenden und die oben genannten Erwähnung Eigenschaften zu migrieren, werden Konfigurationsänderungen wie folgt aufgeführt:

Legacykonfiguration:

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

Moderne Konfiguration:

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

Wenn Sie Sicherheitsprinzipale anstelle von Verbindungszeichenfolge s verwenden, stellt die Anwendung in Versionen vor 4.0 zunächst eine Verbindung mit Azure Resource Manager (ARM) mit dem bereitgestellten Sicherheitsprinzipal her und ruft dann die Verbindungszeichenfolge des angegebenen Namespaces mit ARM ab. Am Ende verwendet die Anwendung die abgerufene Verbindungszeichenfolge, um eine Verbindung mit Azure Event Hubs herzustellen. Auf diese Weise sollte der bereitgestellte Sicherheitsprinzipal mit der Rolle "Mitwirkender " erteilt werden, um den zugeordneten Azure Event Hubs-Namespace abzurufen.

Für Azure Spring Apps 4.0 bieten wir zwei Möglichkeiten, Sicherheitsprinzipale für die Authentifizierung zu nutzen. Eine verwendet weiterhin die Prinzipale, um eine Verbindung mit ARM herzustellen und die Verbindungszeichenfolge abzurufen, in denen die Contributor Rolle für die Prinzipale erforderlich ist. Die andere nutzt Sicherheitsprinzipale, um sich bei Microsoft Entra-ID zu authentifizieren und dann eine direkte Verbindung mit Azure Event Hubs herzustellen. In diesem Fall ist die Contributor Rolle nicht mehr erforderlich, während andere Data verwandte Rollen für Messagingvorgänge erforderlich sind. Um sicherzustellen, dass dem Sicherheitsprinzipal die ausreichende Berechtigung für den Zugriff auf die Azure-Ressource gewährt wurde, lesen Sie "Autorisieren des Zugriffs mit Microsoft Entra ID".

Für die Authentifizierung basierend auf ARM wird der Dienstprinzipal wie folgt aufgeführt, bei der die zugewiesene Rolle nicht geändert werden sollte:

Legacykonfiguration:

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

Hinweis

Die zulässigen tenant-id Werte sind: common, , organizations, consumers, oder die Mandanten-ID. Weitere Informationen zu diesen Werten finden Sie im Abschnitt "Verwendet" des falschen Endpunkts (persönliche und Organisationskonten) des Fehlers AADSTS50020 – Benutzerkonto des Identitätsanbieters ist nicht im Mandanten vorhanden. Informationen zum Konvertieren Ihrer Einzelmandanten-App finden Sie unter Konvertieren einer Einzelmandanten-App in multitenant auf Microsoft Entra ID.

Moderne Konfiguration, Eigenschaften für Azure-Abonnement-ID und Ressourcengruppe sind erforderlich:

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

Hinweis

Die zulässigen tenant-id Werte sind: common, , organizations, consumers, oder die Mandanten-ID. Weitere Informationen zu diesen Werten finden Sie im Abschnitt "Verwendet" des falschen Endpunkts (persönliche und Organisationskonten) des Fehlers AADSTS50020 – Benutzerkonto des Identitätsanbieters ist nicht im Mandanten vorhanden. Informationen zum Konvertieren Ihrer Einzelmandanten-App finden Sie unter Konvertieren einer Einzelmandanten-App in multitenant auf Microsoft Entra ID.

Sie können auch zur Authentifizierung und Autorisierung mit microsoft Entra ID direkt migrieren, ohne einen Umweg zu ARM zu machen. Stellen Sie sicher, dass Sie dem Sicherheitsprinzipal erforderliche Data Rollen für Messagingvorgänge gewähren. Die Konfigurationsbeispiele des Dienstprinzipals und der verwalteten Identität sind wie folgt aufgeführt:

  • Mit einem Dienstprinzipal

    spring:
      cloud:
        azure:
          credential:
            client-id: ${AZURE_CLIENT_ID}
            client-secret: ${AZURE_CLIENT_SECRET}
          profile:
            tenant-id: <tenant>
          eventhubs:
            namespace: ${EVENTHUB_NAMESPACE}
    

Hinweis

Die zulässigen tenant-id Werte sind: common, , organizations, consumers, oder die Mandanten-ID. Weitere Informationen zu diesen Werten finden Sie im Abschnitt "Verwendet" des falschen Endpunkts (persönliche und Organisationskonten) des Fehlers AADSTS50020 – Benutzerkonto des Identitätsanbieters ist nicht im Mandanten vorhanden. Informationen zum Konvertieren Ihrer Einzelmandanten-App finden Sie unter Konvertieren einer Einzelmandanten-App in multitenant auf Microsoft Entra ID.

  • Mit einer verwalteten Identität

    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}
    

API-Änderungen

Die folgende Tabelle zeigt die Klassenzuordnungen von azure-spring-cloud-stream-binder-eventhubs zu spring-cloud-azure-stream-binder-eventhubs.

Legacyklasse Moderne Klasse
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

Von azure-spring-cloud-stream-binder-servicebus-* bis spring-cloud-azure-stream-binder-servicebus

Dieser Leitfaden soll die Migration zu spring-cloud-azure-stream-binder-servicebus ab Version 2 von azure-spring-cloud-stream-binder-servicebus-queue oder azure-spring-cloud-stream-binder-servicebus-topic unterstützen.

Verwenden Sie für allgemeine Informationen die folgenden Links:

SDK-Konfigurationsänderungen

Wichtig

Legacy-Ordnerbibliotheken sind azure-spring-cloud-stream-binder-servicebus-queue und azure-spring-cloud-stream-binder-servicebus-topic, und jetzt werden sie zu einem spring-cloud-azure-stream-binder-servicebuszusammengeführt .

Wichtig

Der Bindemitteltyp wird aus servicebus-queue und servicebus-topic als servicebus.

In der folgenden Tabelle sind die neuen Konfigurationseigenschaften aufgeführt:spring-cloud-azure-stream-binder-servicebus

Moderne Eigenschaften Beschreibung
spring.cloud.stream.servicebus.bindings.binding-name.producer.entity-type Wenn Sie die Sendenfunktion verwenden, müssen Sie den Entitätstyp festlegen, den Sie auf Thema oder Warteschlange festlegen können.

In der folgenden Tabelle sind die Eigenschaftenzuordnungen von azure-spring-cloud-stream-binder-servicebus-* zu spring-cloud-azure-stream-binder-servicebus:

Legacyeigenschaften Moderne Eigenschaften
spring.cloud.azure.resource-group spring.cloud.azure.servicebus.resource.resource-group
spring.cloud.azure.servicebus.transport-type 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 or spring.cloud.azure.servicebus.retry.fixed.max-retries, should be configured depending on spring.cloud.azure.servicebus.retry.mode=fixed or exponential
spring.cloud.azure.servicebus.retry-options.delay spring.cloud.azure.servicebus.retry.exponential.base-delay oder spring.cloud.azure.servicebus.retry.fixed.delay, sollte je nach spring.cloud.azure.servicebus.retry.mode=fixed oder exponential konfiguriert werden.
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.Parallelität spring.cloud.stream.servicebus.bindings.binding-name.consumer.max-concurrent-sessions/max-concurrent-calls
spring.cloud.stream.servicebus.queue.bindings.binding-name.consumer.Prüfpunktmodus spring.cloud.stream.servicebus.bindings.binding-name.consumer.AutoVervollständigen
spring.cloud.stream.servicebus.topic.bindings.* spring.cloud.stream.servicebus.bindings.*
spring.cloud.stream.servicebus.topic.bindings.binding-name.consumer.Parallelität spring.cloud.stream.servicebus.bindings.binding-name.consumer.max-concurrent-sessions/max-concurrent-calls
spring.cloud.stream.servicebus.topic.bindings.binding-name.consumer.Prüfpunktmodus spring.cloud.stream.servicebus.bindings.binding-name.consumer.AutoVervollständigen

Hinweis

Die Parallelitätseigenschaft wird durch die maxConcurrentSessions ersetzt, wenn "sessionsEnabled" ist true und "maxConcurrentCalls", wenn "sessionsEnabled" ist false.

Hinweis

Das Aktivieren von "AutoVervollständigen" entspricht dem RECORD Prüfpunktmodus und gegenüber dem MANUAL Modus.

Beispiele für die Konfigurationsmigration

Legacykonfiguration mit Warteschlange als Beispiel:

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

Moderne Konfiguration:

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

Wenn Sie Sicherheitsprinzipale anstelle von Verbindungszeichenfolge s verwenden, stellt die Anwendung in Versionen vor 4.0 zunächst eine Verbindung mit Azure Resource Manager (ARM) mit dem bereitgestellten Sicherheitsprinzipal her und ruft dann die Verbindungszeichenfolge des angegebenen Namespaces mit ARM ab. Am Ende verwendet die Anwendung die abgerufene Verbindungszeichenfolge, um eine Verbindung mit Azure Service Bus herzustellen. Auf diese Weise sollte der bereitgestellte Sicherheitsprinzipal mit der Rolle "Mitwirkender " erteilt werden, um den zugeordneten Azure Service Bus-Namespace abzurufen.

Für Azure Spring Apps 4.0 bieten wir zwei Möglichkeiten, Sicherheitsprinzipale für die Authentifizierung zu nutzen. Eine verwendet weiterhin die Prinzipale, um eine Verbindung mit ARM herzustellen und die Verbindungszeichenfolge abzurufen, in denen die Contributor Rolle für die Prinzipale erforderlich ist. Die andere nutzt Sicherheitsprinzipale, um sich bei Microsoft Entra-ID zu authentifizieren und dann eine direkte Verbindung mit dem Azure Service Bus herzustellen. In diesem Fall ist die Contributor Rolle nicht mehr erforderlich, während andere Data verwandte Rollen für Messagingvorgänge erforderlich sind. Um sicherzustellen, dass dem Sicherheitsprinzipal die ausreichende Berechtigung für den Zugriff auf die Azure-Ressource gewährt wurde, lesen Sie "Autorisieren des Zugriffs mit Microsoft Entra ID".

Für die Authentifizierung basierend auf ARM wird der Dienstprinzipal wie folgt aufgeführt, bei der die zugewiesene Rolle nicht geändert werden sollte:

Legacykonfiguration:

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

Hinweis

Die zulässigen tenant-id Werte sind: common, , organizations, consumers, oder die Mandanten-ID. Weitere Informationen zu diesen Werten finden Sie im Abschnitt "Verwendet" des falschen Endpunkts (persönliche und Organisationskonten) des Fehlers AADSTS50020 – Benutzerkonto des Identitätsanbieters ist nicht im Mandanten vorhanden. Informationen zum Konvertieren Ihrer Einzelmandanten-App finden Sie unter Konvertieren einer Einzelmandanten-App in multitenant auf Microsoft Entra ID.

Moderne Konfiguration, Eigenschaften für Azure-Abonnement-ID und Ressourcengruppe sind erforderlich:

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

Hinweis

Die zulässigen tenant-id Werte sind: common, , organizations, consumers, oder die Mandanten-ID. Weitere Informationen zu diesen Werten finden Sie im Abschnitt "Verwendet" des falschen Endpunkts (persönliche und Organisationskonten) des Fehlers AADSTS50020 – Benutzerkonto des Identitätsanbieters ist nicht im Mandanten vorhanden. Informationen zum Konvertieren Ihrer Einzelmandanten-App finden Sie unter Konvertieren einer Einzelmandanten-App in multitenant auf Microsoft Entra ID.

Sie können auch zur Authentifizierung und Autorisierung mit microsoft Entra ID direkt migrieren, ohne einen Umweg zu ARM zu machen. Stellen Sie sicher, dass Sie dem Sicherheitsprinzipal erforderliche Data Rollen für Messagingvorgänge gewähren. Die Konfigurationsbeispiele des Dienstprinzipals und der verwalteten Identität sind wie folgt aufgeführt:

  • Mit einem Dienstprinzipal

    spring:
      cloud:
        azure:
          credential:
            client-id: ${AZURE_CLIENT_ID}
            client-secret: ${AZURE_CLIENT_SECRET}
          profile:
            tenant-id: <tenant>
          servicebus:
            namespace: ${SERVICEBUS_NAMESPACE}
    

Hinweis

Die zulässigen tenant-id Werte sind: common, , organizations, consumers, oder die Mandanten-ID. Weitere Informationen zu diesen Werten finden Sie im Abschnitt "Verwendet" des falschen Endpunkts (persönliche und Organisationskonten) des Fehlers AADSTS50020 – Benutzerkonto des Identitätsanbieters ist nicht im Mandanten vorhanden. Informationen zum Konvertieren Ihrer Einzelmandanten-App finden Sie unter Konvertieren einer Einzelmandanten-App in multitenant auf Microsoft Entra ID.

  • Mit einer verwalteten Identität

    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}
    

API-Änderungen

  • Kopfzeile AzureHeaders.RAW_IDder Drop-Nachricht . Verwenden Sie stattdessen ServiceBusMessageHeaders.MESSAGE_ID.

Die folgende Tabelle zeigt die Klassenzuordnungen von azure-spring-cloud-stream-binder-eventhubs zu spring-cloud-azure-stream-binder-eventhubs.

Legacyklasse Moderne Klasse
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

Die com.azure.spring:azure-spring-cloud-messaging Bibliothek ist für 4.0 nicht bereit. Die Funktion von Listeneranmerkungen wird neu gestaltet, sodass die @AzureMessageListenerAnmerkungen @AzureMessageListenersund @EnableAzureMessaging Anmerkungen derzeit nicht unterstützt werden.