Migratiehandleiding voor Spring Cloud Azure 4.0

Deze handleiding helpt bij de migratie naar Spring Cloud Azure 4.0 vanuit verouderde Azure Spring-bibliotheken.

Inleiding

We roepen bibliotheken aan waarvan de groeps-id en artefact-id het patroon com.azure.spring:spring-cloud-azure-* volgen van de moderne bibliotheken, en bibliotheken met patroon com.azure.spring:azure-spring-boot-*, com.azure.spring:azure-spring-cloud-*of com.azure.spring:azure-spring-integration-* de verouderde bibliotheken.

Deze handleiding richt zich op vergelijkingen naast elkaar voor vergelijkbare configuraties tussen de moderne en verouderde bibliotheken.

Bekendheid met com.azure.spring:azure-spring-boot-*of com.azure.spring:azure-spring-cloud-*com.azure.spring:azure-spring-integration-* pakket wordt verondersteld.

Als u geen gebruik hebt gemaakt van de Spring Cloud Azure 4.0-bibliotheken, raadpleegt u de Ontwikkelaarshandleiding voor Spring Cloud Azure in plaats van deze handleiding.

Migratievoordelen

Een natuurlijke vraag die u moet stellen bij het overwegen of u een nieuwe versie of bibliotheek wilt gebruiken, zijn de voordelen. Naarmate Azure is ontwikkeld en door een diversere groep ontwikkelaars is omarmd, hebben we ons gericht op het leren van de patronen en procedures om de productiviteit van ontwikkelaars te ondersteunen en om inzicht te krijgen in de hiaten die de Spring Cloud Azure-bibliotheken hebben.

Er zijn verschillende gebieden van consistente feedback die wordt uitgedrukt in de Spring Cloud Azure-bibliotheken. Het belangrijkste is dat de bibliotheken voor verschillende Azure-services de volledige set configuraties niet hebben ingeschakeld. Bovendien maakte de inconsistentie van projectnaamgeving, artefact-id's, versies en configuraties de leercurve steil.

Om de ontwikkelervaring in Spring Cloud Azure-bibliotheken te verbeteren, is er een set ontwerprichtlijnen geïntroduceerd om ervoor te zorgen dat Spring Cloud Azure-bibliotheken een natuurlijk en idiomatisch gevoel hebben met betrekking tot het Spring-ecosysteem. Meer informatie is beschikbaar in het ontwerpdocument voor degenen die geïnteresseerd zijn.

Spring Cloud Azure 4.0 biedt de gedeelde ervaring voor bibliotheken die zijn geïntegreerd met verschillende Spring-projecten, bijvoorbeeld Spring Boot, Spring Integration, Spring Cloud Stream, enzovoort. De gedeelde ervaring omvat:

  • Een geïntegreerde BOM om alle Spring Cloud Azure 4.0-bibliotheken op te nemen.
  • Een consistente naamconventie voor artefacten.
  • Een uniforme manier om referentie-, proxy-, nieuwe pogingen, cloudomgeving- en transportlaaginstellingen te configureren.
  • Ondersteuning voor alle verificatiemethoden die een Azure-service of Azure Service SDK ondersteunt.

Overzicht

Deze migratiehandleiding bestaat uit de volgende secties:

  • Naamgevingswijzigingen voor Spring Cloud Azure 4.0
  • Wijzigingen in artefacten: hernoemd/toegevoegd/verwijderd
  • Afhankelijkheidswijzigingen
  • Verificatiewijzigingen
  • Configuratie-eigenschappen
  • WIJZIGINGEN die fouten veroorzaken in de API
  • Bibliotheekwijzigingen

Naamgevingswijzigingen

Er is nooit een consistente of officiële naam geweest om alle Spring Cloud Azure-bibliotheken aan te roepen. Sommige van hen werden gebeld Azure Spring Boot en sommige van hen Spring on Azure. Sinds 4.0 zijn we begonnen met het gebruik van de projectnaam Spring Cloud Azure om alle Azure Spring-bibliotheken weer te geven.

Stuklijst

We hebben vroeger twee BOM's verzonden voor onze bibliotheken, de azure-spring-boot-bom en azure-spring-cloud-dependencies, maar we hebben deze twee BOM's gecombineerd tot één BOM sinds 4.0, de spring-cloud-azure-dependencies. Voeg een vermelding toe in de dependencyManagement sectie van uw project om te profiteren van het afhankelijkheidsbeheer.

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

Notitie

Als u Spring Boot 3.x gebruikt, moet u de spring-cloud-azure-dependencies versie instellen op 5.8.0. Zie welke versie van Spring Cloud Azure moet ik gebruiken voor meer informatie over de spring-cloud-azure-dependencies versie.

Wijzigingen in artefacten: hernoemd/toegevoegd/verwijderd

Groeps-id's zijn hetzelfde voor moderne en verouderde Spring Cloud Azure-bibliotheken. Ze zijn allemaal com.azure.spring. Artefact-id's voor de moderne Spring Cloud Azure-bibliotheken zijn gewijzigd. Volgens welk Spring-project het behoort, Spring Boot, Spring Integration of Spring Cloud Stream, kan spring-cloud-azure-starter-[service]het patroon artefact-id's zijn, spring-integration-azure-[service]of spring-cloud-azure-stream-binder-[service]. De verouderde starters voor elk item hebben een artefact-id volgens het patroon azure-spring-*. Dit biedt een snelle en toegankelijke manier om in één oogopslag te begrijpen of u moderne of verouderde starters gebruikt.

Tijdens het ontwikkelen van Spring Cloud Azure 4.0 hebben we enkele artefacten hernoemd om ze de nieuwe naamconventies te laten volgen, enkele artefacten verwijderd, zodat de functionaliteit kan worden geplaatst in een geschikter artefact en enkele nieuwe artefacten toegevoegd om bepaalde scenario's beter te kunnen gebruiken.

In de volgende tabel ziet u de toewijzingen tussen de verouderde artefact-id en de id van het moderne artefact:

Verouderde artefact-id Moderne artefact-id Beschrijving
azure-spring-boot-starter spring-cloud-azure-starter Dit artefact is verwijderd met alle functionaliteit die wordt samengevoegd met het nieuwe spring-cloud-azure-starter artefact.
azure-spring-boot-starter-active-directory spring-cloud-azure-starter-active-directory De naam van het artefact is gewijzigd.
azure-spring-boot-starter-active-directory-b2c spring-cloud-azure-starter-active-directory-b2c De naam van het artefact is gewijzigd.
azure-spring-boot-starter-cosmos spring-cloud-azure-starter-data-cosmos De naam van het artefact dat moet worden toegevoegd data, wat aangeeft met Spring Data Azure Cosmos DB.
azure-spring-boot-starter-keyvault-certificates niet van toepassing Niet opgenomen in deze release, maar wordt ondersteund in een latere versie.
azure-spring-boot-starter-keyvault-secrets spring-cloud-azure-starter-keyvault-secrets De naam van het artefact is gewijzigd.
azure-spring-boot-starter-servicebus-jms spring-cloud-azure-starter-servicebus-jms De naam van het artefact is gewijzigd.
azure-spring-boot-starter-storage spring-cloud-azure-starter-storage-blob
spring-cloud-azure-starter-storage-file-share
Het verouderde artefact bevat de functionaliteit van zowel storage-blob als bestandsshare. Het is gepliceerd in twee afzonderlijke artefacten in 4.0, spring-cloud-azure-starter-storage-blob en spring-cloud-azure-starter-storage-file-share.
azure-spring-boot niet van toepassing Dit artefact is verwijderd met alle functionaliteit die wordt samengevoegd met het nieuwe spring-cloud-azure-autoconfigure artefact.
azure-spring-cloud-autoconfigure niet van toepassing Dit artefact is verwijderd met alle functionaliteit die wordt samengevoegd met het nieuwe spring-cloud-azure-autoconfigure artefact.
azure-spring-cloud-context niet van toepassing Dit artefact is verwijderd met alle functionaliteit die wordt samengevoegd met de nieuwe spring-cloud-azure-autoconfigure artefacten.spring-cloud-azure-resourcemanager
azure-spring-cloud-messaging spring-messaging-azure De aantekening van de berichtenlistener is verwijderd.
azure-spring-cloud-starter-cache niet van toepassing Dit artefact is verwijderd, voor het gebruik van redis, voegt u spring-boot-starter-data-redis, spring-boot-starter-cache, spring-cloud-azure-resourcemanager en spring-cloud-azure-starter toe. Zie de ondersteuning voor Spring Cloud Azure Redis voor meer informatie over gebruik.
azure-spring-cloud-starter-eventhubs-kafka niet van toepassing Dit artefact is verwijderd, voor het gebruik van kafka, voegt u spring kafka, spring-cloud-azure-resourcemanager en spring-cloud-azure-starter toe. Zie de ondersteuning voor Spring Cloud Azure Kafka voor meer informatie over gebruik.
azure-spring-cloud-starter-eventhubs spring-cloud-azure-starter-integration-eventhubs Wijzig de naam van het artefact dat u wilt toevoegen integration, wat aangeeft dat u Spring Integration gebruikt met Event Hubs.
azure-spring-cloud-starter-servicebus spring-cloud-azure-starter-integration-servicebus Wijzig de naam van het artefact dat u wilt toevoegen integration, wat aangeeft dat u Spring Integration gebruikt met Service Bus.
azure-spring-cloud-starter-storage-queue spring-cloud-azure-starter-integration-storage-queue De naam van het artefact dat moet worden toegevoegd integration, wat aangeeft dat Spring Integration met Storage Queue wordt gebruikt.
azure-spring-cloud-storage niet van toepassing Dit artefact is verwijderd met alle functies die zijn samengevoegd met het nieuwe spring-cloud-azure-autoconfigure artefact.
azure-spring-cloud-stream-binder-eventhubs spring-cloud-azure-stream-binder-eventhubs Dit artefact is geherstructureerd met behulp van een nieuw ontwerp, voornamelijk spring-cloud-azure-stream-binder-eventhubs en spring-cloud-azure-stream-binder-eventhubs-core.
azure-spring-cloud-stream-binder-service-core spring-cloud-azure-stream-binder-servicebus-core De naam van het artefact is gewijzigd.
azure-spring-cloud-stream-binder-servicebus-queue spring-cloud-azure-stream-binder-servicebus Dit artefact is verwijderd met alle functionaliteit die in het spring-cloud-azure-stream-binder-servicebus artefact wordt samengevoegd.
azure-spring-cloud-stream-binder-servicebus-topic spring-cloud-azure-stream-binder-servicebus Dit artefact is verwijderd met alle functionaliteit die in het spring-cloud-azure-stream-binder-servicebus artefact wordt samengevoegd.
azure-spring-integration-core spring-integration-azure-core De naam van het artefact is gewijzigd.
azure-spring-integration-eventhubs spring-integration-azure-eventhubs Wijzig de naam van het artefact.
azure-spring-integration-servicebus spring-integration-azure-servicebus Wijzig de naam van het artefact.
azure-spring-integration-storage-queue spring-integration-azure-storage-queue Wijzig de naam van het artefact.
niet van toepassing spring-cloud-azure-actuator Het zojuist toegevoegde Spring Cloud Azure Actuator-artefact.
niet van toepassing spring-cloud-azure-actuator-autoconfigure Het zojuist toegevoegde Spring Cloud Azure Actuator AutoConfigure-artefact, inclusief automatische configuratie voor actuator.
niet van toepassing spring-cloud-azure-autoconfigure Nieuw toegevoegd Spring Cloud Azure AutoConfigure-artefact, inclusief alle automatische configuratie voor SDK-clients, Spring Security-ondersteuning, Spring Data-ondersteuning en Spring Integration-ondersteuning.
niet van toepassing spring-cloud-azure-core Nieuw toegevoegd Spring Cloud Azure Core-artefact, inclusief alle kernfunctionaliteit.
niet van toepassing spring-cloud-azure-resourcemanager Nieuw toegevoegd Resource Manager-artefact. Het is de Core-bibliotheek met behulp van Azure Resource Manager om metagegevens te lezen en resources te maken.
niet van toepassing spring-cloud-azure-service Nieuw toegevoegd Spring Cloud Azure Service-artefact, inclusief abstracties voor Azure-services.
niet van toepassing spring-cloud-azure-starter-appconfiguration Nieuw toegevoegd starter voor het gebruik van Azure-app Configuration SDK-client.
niet van toepassing spring-cloud-azure-starter-cosmos Nieuw toegevoegd starter voor het gebruik van de Azure Cosmos DB SDK-client.
niet van toepassing spring-cloud-azure-starter-eventhubs Nieuw toegevoegd starter voor het gebruik van de Azure Event Hubs SDK-client.
niet van toepassing spring-cloud-azure-starter-servicebus Nieuw toegevoegd starter voor het gebruik van de Azure Service Bus SDK-client.
niet van toepassing spring-cloud-azure-starter-storage-blob Nieuw toegevoegd starter voor het gebruik van de Azure Storage Blob SDK-client.
niet van toepassing spring-cloud-azure-starter-storage-file-share Nieuw toegevoegd starter voor het gebruik van de Azure Storage File Share SDK-client.
niet van toepassing spring-cloud-azure-starter-storage-queue Nieuw toegevoegd starter voor het gebruik van de Azure Storage Queue SDK-client.
niet van toepassing spring-cloud-azure-starter-stream-eventhubs Nieuw toegevoegd starter voor het gebruik van Azure Event Hubs Spring Cloud Stream Binder.
niet van toepassing spring-cloud-azure-starter-stream-servicebus Nieuw toegevoegd starter voor het gebruik van Azure Service Bus Spring Cloud Stream Binder
niet van toepassing spring-cloud-azure-stream-binder-eventhubs-core Nieuw toegevoegd Spring Cloud Stream-kernartefact voor Azure Event Hubs.

Afhankelijkheden wijzigen

Sommige onnodige afhankelijkheden zijn opgenomen in de verouderde artefacten, die we hebben verwijderd in de moderne Spring Cloud Azure 4.0-bibliotheken. Zorg ervoor dat u de verwijderde afhankelijkheden handmatig toevoegt aan uw project om crashes te voorkomen.

Bibliotheken met afhankelijkheidswijzigingen zijn onder andere:

Verificatiewijzigingen

Spring Cloud Azure 4.0 ondersteunt alle verificatiemethoden die door elke Azure Service SDK worden ondersteund. Hiermee kunt u een globale tokenreferentie configureren en de tokenreferenties opgeven op elk serviceniveau. Maar een referentie is niet vereist om Spring Cloud Azure 4.0 te configureren, omdat deze de referentie kan toepassen die is opgeslagen in een lokale ontwikkelomgeving of beheerde identiteit in Azure Services. Zorg ervoor dat de principal voldoende machtigingen heeft gekregen voor toegang tot de Azure-doelbronnen.

Notitie

Wanneer u rollen toewijst aan de beveiligingsprinciplen om te communiceren met Azure Messaging-services, zijn de gerelateerde rollen vereist voor het Data uitvoeren van berichtenbewerkingen. Voor Azure Spring Apps Stream Event Hubs/Service Bus Binder-bibliotheken Contributor is een rol vereist wanneer de functie voor het automatisch maken van resources nodig is. Zie Ingebouwde rollen in Azure voor meer informatie.

Een gekoppelde referentie, de DefaultAzureCredential bean is standaard automatisch geconfigureerd en wordt gebruikt door alle onderdelen als er geen verificatiegegevens meer zijn opgegeven. Zie de sectie DefaultAzureCredential van de Azure Identity-clientbibliotheek voor Java voor meer informatie.

Configuratie-eigenschappen

Eigenschappenmigratie

We hebben een extra spring-configuration-metadata.json-bestand gemaakt om de migratie van eigenschappen soepeler te laten verlopen bij gebruik met spring-boot-properties-migrator. Voeg eerst de volgende eigenschapsmigratie toe aan uw toepassing:

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

Of als u Gradle gebruikt:

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

Als u de app uitvoert, worden de eigenschappen geïdentificeerd die niet meer worden beheerd door Spring Cloud Azure. Als er een vervanging is, wordt de eigenschap tijdelijk opnieuw toewijzen met een waarschuwing. Als er geen vervanging is, krijgt u meer informatie in een foutenrapport. In beide gevallen moet de configuratie worden bijgewerkt en moet de afhankelijkheid worden verwijderd zodra u de configuratie hebt bijgewerkt.

Voordat u verdergaat, is het een goed idee om de zoekfunctie van uw IDE te gebruiken om te controleren of u geen van de eigenschappen gebruikt die u in een integratietest hebt gemigreerd.

Notitie

We hebben veel configuratie-eigenschappen in deze wijziging gewijzigd. Door de spring-boot-properties-migrator migratie te gebruiken, kunt u uw migratie soepel laten verlopen.

Globale configuraties

Met het moderne spring-cloud-azure-starter model kunt u eigenschappen definiëren die van toepassing zijn op alle Azure SDK's in de naamruimte spring.cloud.azure. Deze functie is niet ondersteund in de verouderde azure-spring-boot-starterversie. De globale configuraties kunnen worden onderverdeeld in vijf categorieën, die worden weergegeven in de volgende tabel:

Voorvoegsel Beschrijving
spring.cloud.azure.client Hiermee configureert u de transportclients onder elke Azure SDK.
spring.cloud.azure.credential Hiermee configureert u hoe u verifieert met Microsoft Entra-id.
spring.cloud.azure.profile Hiermee configureert u de Azure-cloudomgeving.
spring.cloud.azure.proxy Hiermee configureert u de proxyopties, die van toepassing zijn op alle Azure SDK-clients.
spring.cloud.azure.retry Hiermee configureert u de opties voor opnieuw proberen, die van toepassing zijn op alle Azure SDK-clients. De opties voor opnieuw proberen hebben een ondersteund deel van de SDK's, er is geen spring.cloud.azure.cosmos.retry.

Zie De configuratie-eigenschappen van Spring Cloud Azure voor een volledige lijst met configuraties.

Elke SDK configureren

Gebruik de volgende koppelingen voor meer informatie over de configuratieopties op SDK-niveau:

WIJZIGINGEN die fouten veroorzaken in de API

Gebruik de volgende koppelingen voor meer informatie over api-belangrijke wijzigingen in elke bibliotheek:

Bibliotheekwijzigingen

Belangrijke wijzigingen in elke bibliotheek worden als volgt geïntroduceerd.

Van azure-spring-boot-starter tot spring-cloud-azure-starter

Deze handleiding is bedoeld om u te helpen bij de migratie naar spring-cloud-azure-starter vanaf versie 3 van azure-spring-boot-starter.

Gebruik de volgende koppelingen voor algemene informatie:

Afhankelijkheidswijzigingen

Sommige onnodige afhankelijkheden zijn opgenomen in de verouderde artefacten, die we hebben verwijderd in de moderne Spring Cloud Azure 4.0-bibliotheken. Zorg ervoor dat u de verwijderde afhankelijkheden handmatig aan uw project toevoegt om onbedoelde crash te voorkomen.

In de volgende tabel ziet u de verwijderde afhankelijkheden:

Afhankelijkheden verwijderd Beschrijving
org.springframework.boot:spring-boot-starter-validation Neem de validatiestarter op als u Hibernate Validator wilt gebruiken.

Van azure-spring-boot-starter-active-directory naar spring-cloud-azure-starter-active-directory

Deze handleiding is bedoeld om de migratie naar spring-cloud-azure-starter-active-directory te helpen vanaf versie 3 van azure-spring-boot-starter-active-directory.

Gebruik de volgende koppelingen voor algemene informatie:

Afhankelijkheidswijzigingen

Sommige onnodige afhankelijkheden in het verouderde artefact zijn verwijderd sinds de moderne Spring Cloud Azure 4.0-bibliotheek. Voeg deze verwijderde afhankelijkheden toe aan uw project om onbedoelde crash te voorkomen.

In de volgende tabel ziet u de verwijderde afhankelijkheden:

Afhankelijkheden verwijderd Beschrijving
com.fasterxml.jackson.core:jackson-databind Voeg deze afhankelijkheid indien nodig toe aan uw project.
io.project reactor.netty:reactor-netty Voeg deze afhankelijkheid indien nodig toe aan uw project.
org.springframework.boot:spring-boot-starter-validation Voeg deze afhankelijkheid indien nodig toe aan uw project.
org.springframework.boot:spring-boot-starter-webflux Voeg deze afhankelijkheid indien nodig toe aan uw project.

SDK-configuratiewijzigingen

Deze sectie bevat de wijzigingen over de toegevoegde, verwijderde en gewijzigde eigenschappen.

  • De volgende twee punten zijn het belangrijkste waar u aandacht aan moet besteden:
  1. Het voorvoegsel van alle configuratie-eigenschappen is gewijzigd van azure.activedirectory in spring.cloud.azure.active-directory.
  2. Er wordt een nieuwe eigenschap spring.cloud.azure.active-directory.enabled toegevoegd om gerelateerde functies van Microsoft Entra in of uit te schakelen. De standaardwaarde is false.

In de volgende tabel ziet u de eigenschapstoewijzingen tussen azure-spring-boot-starter-active-directory en spring-cloud-azure-starter-active-directory:

Verouderde eigenschappen Moderne eigenschappen
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 Raadpleeg de volgende tabel voor meer informatie.
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-levensduur spring.cloud.azure.active-directory.jwk-set-cache-levensduur.
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
  • Het waardetype van de volgende eigenschappen wordt gewijzigd long van:Duration

    • jwt-connect-timeout
    • jwt-read-timeout
    • jwk-set-cache-lifespan
    • jwk-set-cache-refresh-time.
  • De volgende eigenschappen worden verwijderd:

    • azure.activedirectory.allow-telemetry
    • azure.activedirectory.user-group.enable-full-list
    • azure.activedirectory.graph-base-uri
    • azure.activedirectory.graph-membership-uri
  • De volgende eigenschappen worden toegevoegd:

    • 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

Notitie

De functie van azure.activedirectory.graph-membership-uri is vervangen door 2 eigenschappen: spring.cloud.azure.active-directory.profile.environment.microsoft-graph-endpoint en spring.cloud.azure.active-directory.user-group.use-transitive-members. De eerste eigenschap wordt gebruikt om de hostnaam op te geven en de tweede een vlag voor het gebruik van het URL-pad: v1.0/me/memberOf of v1.0/me/transitiveMemberOf.

Hier volgen enkele voorbeelden van migratie:

  • Voorbeeld 1. Geval 1

    • Voor verouderd: azure.activedirectory.graph-membership-uri=https://graph.microsoft.com/v1.0/me/memberOf

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

  • Voorbeeld 2. Geval 2

    • Voor verouderd: azure.activedirectory.graph-membership-uri=https://graph.microsoft.com/v1.0/me/transitiveMemberOf

    • Voor 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-wijzigingen

In de volgende tabel ziet u de klassetoewijzingen van azure-spring-boot-starter-active-directory naar spring-cloud-azure-starter-active-directory:

Verouderde klasse Moderne klasse
com.azure.spring.aad.webapi.AADJwtBearerTokenAuthentication Converter 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

Deze sectie bevat de verwijderde klassen uit azure-spring-boot-starter-active-directory.

  • Verouderde klasse verwijderd

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

Van azure-spring-boot-starter-active-directory-b2c naar spring-cloud-azure-starter-active-directory-b2c

Deze handleiding is bedoeld om u te helpen bij de migratie naar spring-cloud-azure-starter-active-directory-b2c van versie 3 van azure-spring-boot-starter-active-directory-b2c.

Gebruik de volgende koppelingen voor algemene informatie:

Afhankelijkheidswijzigingen

Sommige onnodige afhankelijkheden zijn opgenomen in de verouderde artefacten, die we hebben verwijderd in de moderne Spring Cloud Azure 4.0-bibliotheken. Zorg ervoor dat u de verwijderde afhankelijkheden handmatig aan uw project toevoegt om onbedoelde crash te voorkomen.

In de volgende tabel ziet u de verwijderde afhankelijkheden:

Afhankelijkheden verwijderd Beschrijving
org.springframework.boot:spring-boot-starter-validation Neem de validatiestarter op als u Hibernate Validator wilt gebruiken.

SDK-configuratiewijzigingen

Deze sectie bevat de wijzigingen over de toegevoegde, verwijderde en gewijzigde eigenschappen.

  • De volgende twee punten zijn het belangrijkste waar u aandacht aan moet besteden:
  1. Alle namen van configuratie-eigenschappen hebben het voorvoegsel gewijzigd van azure.activedirectory.b2c in spring.cloud.azure.active-directory.b2c.
  2. Er wordt een nieuwe eigenschap spring.cloud.azure.active-directory.b2c.enabled toegevoegd om azure AD B2C-gerelateerde functies toe te staan of uit te schakelen. De standaardwaarde is false.

In de volgende tabel ziet u de eigenschapstoewijzingen van azure-spring-boot-starter-active-directory-b2c naar spring-cloud-azure-starter-active-directory-b2c:

Verouderde eigenschappen Moderne eigenschappen
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-name spring.cloud.azure.active-directory.b2c.user-name-attribute-name-name
  • Eigenschappen verwijderd uit azure-spring-boot-starter-active-directory-b2c:

    • azure.activedirectory.b2c.allow-telemetry
    • azure.activedirectory.b2c.tenant
  • Het waardetype van de volgende eigenschappen wordt gewijzigd long van:Duration

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

API-wijzigingen

In de volgende tabel ziet u de klassetoewijzingen van azure-spring-boot-starter-active-directory-b2c naar spring-cloud-azure-starter-active-directory-b2c:

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

Van azure-spring-boot-starter-cosmos tot spring-cloud-azure-starter-data-cosmos

Deze handleiding is bedoeld om u te helpen bij de migratie naar spring-cloud-azure-starter-data-cosmos van versie 3 van azure-spring-boot-starter-cosmos.

Gebruik de volgende koppelingen voor algemene informatie:

SDK-configuratiewijzigingen

Alle namen van configuratie-eigenschappen hebben het voorvoegsel gewijzigd van azure.cosmos in spring.cloud.azure.cosmos.

In de volgende tabel ziet u de klassetoewijzingen van azure-spring-boot-starter-cosmos naar spring-cloud-azure-starter-data-cosmos:

Verouderde eigenschappen Moderne eigenschappen
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

Van azure-spring-boot-starter-keyvault-secrets tot spring-cloud-azure-starter-keyvault-secrets

Deze handleiding is bedoeld om u te helpen bij de migratie naar spring-cloud-azure-starter-keyvault-secrets van versie 3 van azure-spring-boot-starter-keyvault-secrets.

Gebruik de volgende koppelingen voor algemene informatie:

SDK-configuratiewijzigingen

Deze sectie bevat de wijzigingen over de toegevoegde, verwijderde en gewijzigde eigenschappen.

In de volgende tabel ziet u de eigenschapstoewijzingen van azure-spring-boot-starter-keyvault-secrets naar spring-cloud-azure-starter-keyvault-secrets:

Verouderde eigenschappen Moderne eigenschappen
azure.keyvault.case-sensitive-keys spring.cloud.azure.keyvault.secret.property-source[n].hoofdlettergevoelig
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 en spring.cloud.azure.keyvault.secret.property-source-enabled
azure.keyvault.order Niet meer ondersteund. Gebruik in plaats daarvan de volgorde 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
  • Eigenschappen verwijderd uit spring-cloud-azure-starter-keyvault-secrets

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

De volgende punten moet u aandacht besteden aan:

  1. Alle namen van configuratie-eigenschappen hebben het voorvoegsel gewijzigd van azure.keyvault in spring.cloud.azure.keyvault.secret.
  2. spring.cloud.azure.keyvault.secret.enabledwordt gebruikt om alle Key Vault-geheime functies in te schakelen, waaronder het configureren van Key Vault-clientbonen (zoals SecretClient en ) en toevoegen KeyVaultPropertySourceConfigurableEnvironment.SecretAsyncClient
  3. spring.cloud.azure.keyvault.secret.property-source-enabled wordt gebruikt om alles KeyVaultPropertySourcein te schakelen. Het wordt pas van kracht wanneer spring.cloud.azure.keyvault.secret.enabled=true.
  4. Voor algemene Eigenschappen van Azure(zoals , , , , credential) profileen Key Vault-eigenschappen (zoals , service-version).endpointretryproxyclient Als spring.cloud.azure.keyvault.secret.property-sources[n].PROPERTY_NAME dit niet is geconfigureerd, spring.cloud.azure.keyvault.secret.PROPERTY_NAME wordt deze gebruikt.
  5. spring.cloud.azure.keyvault.secret.property-sources[n].resource is specifiek voor een unieke Azure-resource, dus als deze niet is geconfigureerd, krijgt deze geen waarde van andere locaties.

Van azure-spring-boot-starter-servicebus-jms naar spring-cloud-azure-starter-servicebus-jms

Deze handleiding is bedoeld om u te helpen bij de migratie naar spring-cloud-azure-starter-servicebus-jms van versie 3 van azure-spring-boot-starter-servicebus-jms.

Gebruik de volgende koppelingen voor algemene informatie:

SDK-configuratiewijzigingen

Configuratietype voor spring.jms.servicebus.idle-timeout wijziging van long(milliseconden) in Duration patroon voor leesbaarheid.

Van azure-spring-boot-starter-storage naar spring-cloud-azure-starter-storage-blob

Deze handleiding is bedoeld om u te helpen bij de migratie naar spring-cloud-azure-starter-storage-blob van versie 3 van azure-spring-boot-starter-storage.

Gebruik de volgende koppelingen voor algemene informatie:

SDK-configuratiewijzigingen

Alle namen van configuratie-eigenschappen hebben het voorvoegsel gewijzigd van azure.storage in spring.cloud.azure.storage.blob.

In de volgende tabel ziet u de eigenschapstoewijzingen van azure-spring-boot-starter-storage naar spring-cloud-azure-starter-storage-blob:

Verouderde eigenschappen Moderne eigenschappen
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-wijzigingen

In de volgende tabel ziet u de klassetoewijzingen van azure-spring-boot-starter-storage naar spring-cloud-azure-starter-storage-blob:

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

Van azure-spring-boot-starter-storage naar spring-cloud-azure-starter-storage-file-share

Deze handleiding is bedoeld om u te helpen bij de migratie naar spring-cloud-azure-starter-storage-file-share van versie 3 van azure-spring-boot-starter-storage.

Gebruik de volgende koppelingen voor algemene informatie:

SDK-configuratiewijzigingen

Alle namen van configuratie-eigenschappen hebben het voorvoegsel gewijzigd van azure.storage in spring.cloud.azure.storage.fileshare.

In de volgende tabel ziet u de eigenschapstoewijzingen van azure-spring-boot-starter-storage naar spring-cloud-azure-starter-storage-file-share:

Verouderde eigenschappen Moderne eigenschappen
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-wijzigingen

In de volgende tabel ziet u de klassetoewijzingen van azure-spring-boot-starter-storage naar spring-cloud-azure-starter-storage-file-share:

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

Van azure-spring-cloud-starter-eventhubs tot spring-cloud-azure-starter-integration-eventhubs

Deze handleiding is bedoeld om u te helpen bij de migratie naar spring-cloud-azure-starter-integration-eventhubs van versie 2 van azure-spring-cloud-starter-eventhubs.

Gebruik de volgende koppelingen voor algemene informatie:

SDK-configuratiewijzigingen

Belangrijk

Configuratievoorvoegsel is gewijzigd van spring.cloud.azure.eventhub in spring.cloud.azure.eventhubs.

Zie de volgende tabellen voor wijzigingen in de onderliggende vermeldingen voor dit voorvoegsel:

In de volgende tabel ziet u eigenschapstoewijzingen van azure-spring-cloud-starter-eventhubs naar spring-cloud-azure-starter-integration-eventhubs:

Verouderde eigenschappen Moderne eigenschappen
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

Wijzig bijvoorbeeld van:

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

  • Zie de migratiehandleiding voor de migratiehandleiding van de <<bibliotheek migration-azure-spring-cloud-messaging, azure-spring-cloud-messaging, azure-spring-cloud-messaging>> .
  • Neerzetten EventHubOperation met de abonnementsfunctie verplaatst naar klasse EventHubsMessageListenerContainer en de verzendende functie is verplaatst naar EventHubsTemplate.
  • Wijzig de naam EventHubInboundChannelAdapter om EventHubsInboundChannelAdapter consistent te blijven met de service van Azure Event Hubs.
  • Wijzig de constructor van EventHubInboundChannelAdapter(String, SubscribeByGroupOperation, String) in EventHubsInboundChannelAdapter(EventHubsMessageListenerContainer) en EventHubsInboundChannelAdapter(EventHubsMessageListenerContainer, ListenerMode).
  • Wijzig CheckpointConfig de instantiëringsstijl in de eenvoudige constructor in plaats van de bouwstijl.
  • Drop-API EventHubOperation#setCheckpointConfig. Gebruikers kunnen de methode EventHubsContainerProperties#setCheckpointConfigaanroepen om de controlepuntconfiguratie voor de binnenkomende kanaaladapter in te stellen.
  • Drop-API EventHubOperation#setBatchConsumerConfig. Gebruikers kunnen de twee methoden EventHubsContainerProperties#getBatch#setMaxSize aanroepen en EventHubsContainerProperties#getBatch#setMaxWaitTime ondertussen de configuratie voor batchverwerking instellen voor de binnenkomende kanaaladapter.
  • Voor de batchverwerkingsmodus wijzigt u de namen van de berichtkoppen die zijn geconverteerd van berichten in batches.
    • Berichtkop wijzigen van azure_eventhub_enqueued_time in azure_eventhubs_batch_converted_enqueued_time.
    • Berichtkop wijzigen van azure_eventhub_offset in azure_eventhubs_batch_converted_offset.
    • Berichtkop wijzigen van azure_eventhub_sequence_number in azure_eventhubs_batch_converted_sequence_number.
    • Berichtkop wijzigen van azure_partition_key in azure_batch_converted_partition_key.
  • Wanneer u berichten publiceert naar Event Hubs, negeert u alle berichtkoppen die zijn geconverteerd van berichten in batches. Kopteksten zijn onder andere:
    • 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
  • De BATCH controlepuntmodus werkt nu alleen in de batchverwerkingsmodus, die kan worden ingeschakeld door door te geven ListenerMode.BATCH aan EventHubsInboundChannelAdapter-constructor.

In de volgende tabel ziet u de klassetoewijzingen van azure-spring-cloud-starter-eventhubs naar spring-cloud-azure-starter-integration-eventhubs:

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

Voorbeeldcodefragment

  • EventHubsInboundChannelAdapter Voorbeeldcode:

    Verouderde code:

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

    Moderne 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 Voorbeeldcode:

    Verouderde code:

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

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

Van azure-spring-integration-eventhubs tot spring-integration-azure-eventhubs

Deze handleiding is bedoeld om u te helpen bij de migratie naar spring-integration-azure-eventhubs van versie 2 van azure-spring-integration-eventhubs.

API-wijzigingen

  • Neerzetten EventHubOperation met de abonnementsfunctie verplaatst naar klasse EventHubsMessageListenerContainer en de verzendende functie is verplaatst naar EventHubsTemplate.
  • Wijzig de naam EventHubInboundChannelAdapter om EventHubsInboundChannelAdapter consistent te blijven met de service van Azure Event Hubs.
  • Wijzig de constructor van EventHubInboundChannelAdapter(String, SubscribeByGroupOperation, String) in EventHubsInboundChannelAdapter(EventHubsMessageListenerContainer) en EventHubsInboundChannelAdapter(EventHubsMessageListenerContainer, ListenerMode).
  • Wijzig CheckpointConfig de instantiëringsstijl in de eenvoudige constructor in plaats van de bouwstijl.
  • Drop-API EventHubOperation#setCheckpointConfig. Gebruikers kunnen de methode EventHubsContainerProperties#setCheckpointConfigaanroepen om de controlepuntconfiguratie voor de binnenkomende kanaaladapter in te stellen.
  • Drop-API EventHubOperation#setBatchConsumerConfig. Gebruikers kunnen de twee methoden EventHubsContainerProperties#getBatch#setMaxSize aanroepen en EventHubsContainerProperties#getBatch#setMaxWaitTime ondertussen de configuratie voor batchverwerking instellen voor de binnenkomende kanaaladapter.
  • Voor de batchverwerkingsmodus wijzigt u de namen van de berichtkoppen die zijn geconverteerd van berichten in batches.
    • Berichtkop wijzigen van azure_eventhub_enqueued_time in azure_eventhubs_batch_converted_enqueued_time.
    • Berichtkop wijzigen van azure_eventhub_offset in azure_eventhubs_batch_converted_offset.
    • Berichtkop wijzigen van azure_eventhub_sequence_number in azure_eventhubs_batch_converted_sequence_number.
    • Berichtkop wijzigen van azure_partition_key in azure_batch_converted_partition_key.
  • Wanneer u berichten publiceert naar Event Hubs, negeert u alle berichtkoppen die zijn geconverteerd van berichten in batches. Kopteksten zijn onder andere:
    • 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
  • De BATCH controlepuntmodus werkt nu alleen in de batchverwerkingsmodus, die kan worden ingeschakeld door door te geven ListenerMode.BATCH aan EventHubsInboundChannelAdapter-constructor.

In de volgende tabel ziet u de klassetoewijzingen van azure-spring-integration-eventhubs naar spring-integration-azure-eventhubs:

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

Van azure-spring-cloud-starter-servicebus tot spring-cloud-azure-starter-integration-servicebus

Deze handleiding is bedoeld om u te helpen bij de migratie naar spring-cloud-azure-starter-integration-servicebus van versie 2 van azure-spring-cloud-starter-servicebus.

Gebruik de volgende koppelingen voor algemene informatie:

SDK-configuratiewijzigingen

Voor alle configuratieopties die worden ondersteund spring-cloud-azure-starter-integration-servicebus, blijft het voorvoegsel ongewijzigd spring.cloud.azure.servicebus.

In de volgende tabel ziet u de eigenschapstoewijzingen van azure-spring-cloud-starter-servicebus naar spring-cloud-azure-starter-integration-servicebus:

Verouderde eigenschappen Moderne eigenschappen
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 of spring.cloud.azure.servicebus.retry.fixed.max-retries moeten worden geconfigureerd, afhankelijk van spring.cloud.azure.servicebus.retry.mode=fixed of exponential
spring.cloud.azure.servicebus.retry-options.delay spring.cloud.azure.servicebus.retry.exponential.base-delay of spring.cloud.azure.servicebus.retry.fixed.delay, moet worden geconfigureerd, afhankelijk van spring.cloud.azure.servicebus.retry.mode=vast of exponentieel
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-wijzigingen

  • Neerzetten ServiceBusQueueOperation en ServiceBusTopicOperation met de abonnerende functie verplaatst naar klasse ServiceBusMessageListenerContainer en de verzendende functie is verplaatst naar ServiceBusTemplate.
  • Verwijder ServiceBusQueueInboundChannelAdapter en ServiceBusTopicInboundChannelAdapterverplaats de functionaliteit om naar een Service Bus-wachtrij/onderwerpentiteit te luisteren naar ServiceBusInboundChannelAdapter.
  • Wijzig de constructor van ServiceBusQueueInboundChannelAdapter(String, SubscribeByGroupOperation, String) in ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer) en ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode).
  • Wijzig de constructor van ServiceBusTopicInboundChannelAdapter(String, SubscribeByGroupOperation, String) in ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer) en ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode).
  • Drop-API's ServiceBusQueueOperation#setCheckpointConfig en ServiceBusTopicOperation#setCheckpointConfig. Als u de configuratie van het controlepunt voor de binnenkomende kanaaladapter wilt instellen, kunnen gebruikers in plaats daarvan de methode ServiceBusContainerProperties#setAutoComplete aanroepen. Als u de modus voor automatisch aanvullen wilt uitschakelen, is deze gelijk aan de MANUAL controlepuntmodus en wordt de modus geactiveerd om deze RECORD in te schakelen.
  • Drop-API's ServiceBusQueueOperatio#setClientConfig en ServiceBusTopicOperation#setClientConfig. Gebruikers kunnen in plaats daarvan de onderliggende gegevens ServiceBusProcessorClient configureren die door de binnenkomende kanaaladapter worden ServiceBusContainerProperties gebruikt.
  • Plaats CompletableFuture in plaats daarvan ondersteuning in ServiceBusTemplate en DefaultMessageHandler, ondersteuning Reactor .
  • Voeg een nieuwe API toe om ServiceBusTemplate#setDefaultEntityType het entiteitstype op te geven. Dit is vereist wanneer er geen bean PropertiesSupplier&lt;String, ProducerProperties&gt; van is opgegeven voor de ProducerProperties#entityType.
  • Berichtkop wegzetten AzureHeaders.RAW_ID. Gebruik in plaats daarvan ServiceBusMessageHeaders.MESSAGE_ID.

In de volgende tabel ziet u de klassetoewijzingen van azure-spring-cloud-starter-servicebus naar spring-cloud-azure-starter-integration-servicebus:

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

Voorbeeldcodefragment

  • ServiceBusInboundChannelAdapter Voorbeeldcode:

    Verouderde code voor het gebruik ServiceBusQueueInboundChannelAdapter of 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;
        }
    
    }
    

    Moderne 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 Voorbeeldcode:

    Verouderde code, waarbij de wachtrij als voorbeeld wordt gebruikt:

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

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

Van azure-spring-integration-servicebus tot spring-integration-azure-servicebus

Deze handleiding is bedoeld om u te helpen bij de migratie naar spring-integration-azure-servicebus vanaf versie 2 van azure-spring-integration-servicebus.

API-wijzigingen

  • Neerzetten ServiceBusQueueOperation en ServiceBusTopicOperation met de abonnerende functie verplaatst naar klasse ServiceBusMessageListenerContainer en de verzendende functie is verplaatst naar ServiceBusTemplate.
  • Verwijder ServiceBusQueueInboundChannelAdapter en ServiceBusTopicInboundChannelAdapterverplaats de functionaliteit om naar een Service Bus-wachtrij/onderwerpentiteit te luisteren naar ServiceBusInboundChannelAdapter.
  • Wijzig de constructor van ServiceBusQueueInboundChannelAdapter(String, SubscribeByGroupOperation, String) in ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer) en ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode).
  • Wijzig de constructor van ServiceBusTopicInboundChannelAdapter(String, SubscribeByGroupOperation, String) in ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer) en ServiceBusInboundChannelAdapter(ServiceBusMessageListenerContainer, ListenerMode).
  • Drop-API's ServiceBusQueueOperation#setCheckpointConfig en ServiceBusTopicOperation#setCheckpointConfig. Als u de configuratie van het controlepunt voor de binnenkomende kanaaladapter wilt instellen, kunnen gebruikers in plaats daarvan de methode ServiceBusContainerProperties#setAutoComplete aanroepen. Als u de modus voor automatisch aanvullen wilt uitschakelen, is deze gelijk aan de MANUAL controlepuntmodus en wordt de modus geactiveerd om deze RECORD in te schakelen.
  • Drop-API's ServiceBusQueueOperation#setClientConfig en ServiceBusTopicOperation#setClientConfig. Gebruikers kunnen in plaats daarvan de onderliggende gegevens ServiceBusProcessorClient configureren die door de binnenkomende kanaaladapter worden ServiceBusContainerProperties gebruikt.
  • Plaats CompletableFuture in plaats daarvan ondersteuning in ServiceBusTemplate en DefaultMessageHandler, ondersteuning Reactor .
  • Voeg een nieuwe API toe om ServiceBusTemplate#setDefaultEntityType het entiteitstype op te geven. Dit is vereist wanneer er geen bean PropertiesSupplier&lt;String, ProducerProperties&gt; van is opgegeven voor de ProducerProperties#entityType.
  • Berichtkop wegzetten AzureHeaders.RAW_ID. Gebruik in plaats daarvan ServiceBusMessageHeaders.MESSAGE_ID.

In de volgende tabel ziet u de klassetoewijzingen van azure-spring-integration-servicebus naar spring-integration-azure-servicebus:

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

Van azure-spring-cloud-starter-storage-queue tot spring-cloud-azure-starter-integration-storage-queue

Deze handleiding is bedoeld om u te helpen bij de migratie naar spring-cloud-azure-starter-integration-storage-queue vanaf versie 2 van azure-spring-cloud-starter-storage-queue.

Gebruik de volgende koppelingen voor algemene informatie:

SDK-configuratiewijzigingen

Alle namen van configuratie-eigenschappen hebben het voorvoegsel gewijzigd van spring.cloud.azure.storage in spring.cloud.azure.storage.queue.

In de volgende tabel ziet u de eigenschapstoewijzingen van azure-spring-cloud-starter-storage-queue naar spring-cloud-azure-starter-integration-storage-queue:

Verouderde eigenschappen Moderne eigenschappen
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-wijzigingen

  • Zet StorageQueueOperation en geef StorageQueueTemplate in plaats daarvan op.
  • Drop checkpoint-mode configuration in StorageQueueTemplate, only support the MANUAL mode.

In de volgende tabel ziet u de klassetoewijzingen van azure-spring-cloud-starter-storage-queue naar spring-cloud-azure-starter-integration-storage-queue.

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

Van azure-spring-integration-storage-queue tot spring-integration-azure-storage-queue

Deze handleiding is bedoeld om u te helpen bij de migratie naar spring-integration-azure-storage-queue vanaf versie 2 van azure-spring-integration-storage-queue.

API-wijzigingen

  • Zet StorageQueueOperation en geef StorageQueueTemplate in plaats daarvan op.
  • Drop checkpoint-mode configuration in StorageQueueTemplate, only support the MANUAL mode.

In de volgende tabel ziet u de klassetoewijzingen van azure-spring-integration-storage-queue naar spring-integration-azure-storage-queue.

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

Van azure-spring-cloud-stream-binder-eventhubs naar spring-cloud-azure-stream-binder-eventhubs

Deze handleiding is bedoeld om u te helpen bij de migratie naar spring-cloud-azure-stream-binder-eventhubs van versie 2 van azure-spring-cloud-stream-binder-eventhubs.

Gebruik de volgende koppelingen voor algemene informatie:

SDK-configuratiewijzigingen

Belangrijk

Configuratievoorvoegsel is gewijzigd van spring.cloud.azure.eventhub in spring.cloud.azure.eventhubs.

Belangrijk

De naam van het bindertype wordt gewijzigd van: eventhub in eventhubs.

Zie de volgende tabel voor wijzigingen in de onderliggende vermeldingen voor het volgende voorvoegsel.

In de volgende tabel ziet u eigenschapstoewijzingen van azure-spring-cloud-stream-binder-eventhubs naar spring-cloud-azure-stream-binder-eventhubs:

Verouderde eigenschappen Moderne eigenschappen
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.bindings.binding-name.consumer.max-batch-size spring.cloud.stream.eventhubs.bindings.binding-name.consumer.batch.max-size
spring.cloud.stream.eventhub.bindings.bindings.binding-name.consumer.max-wait-time spring.cloud.stream.eventhubs.bindings.binding-name.consumer.batch.max-wait-time
spring.cloud.stream.eventhub.bindings.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.bindings.binding-name.consumer.checkpoint-interval spring.cloud.stream.eventhubs.bindings.bindings.binding-name.consumer.checkpoint.interval
spring.cloud.stream.eventhub.bindings.bindings.binding-name.consumer.start-position spring.cloud.stream.eventhubs.bindings.binding-name.consumer.initial-partition-event-position

Notitie

Het waardetype van de start-position configuratie wordt ook gewijzigd van een opsomming in com.azure.spring.integration.core.api.StartPosition een map van StartPositionProperties voor elke partitie. De sleutel is dus de partitie-id en de waarde bevat com.azure.spring.cloud.service.eventhubs.properties.StartPositionProperties eigenschappen van offset, volgnummer, datum en inclusief.

Voorbeelden van configuratiemigratie

Als u de verbindingsreeks voor verificatie wilt gebruiken en de bovenstaande eigenschappen wilt migreren, worden de configuratiewijzigingen als volgt weergegeven:

Verouderde configuratie:

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

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

Als u beveiligingsprinciplen gebruikt in plaats van verbindingsreeks s, maakt de toepassing in versies vóór 4.0 eerst verbinding met Azure Resource Manager (ARM) met de opgegeven beveiligingsprincipaal en haalt u vervolgens de verbindingsreeks van de opgegeven naamruimte op met ARM. Uiteindelijk gebruikt de toepassing de opgehaalde verbindingsreeks om verbinding te maken met Azure Event Hubs. Op deze manier moet de opgegeven beveiligingsprincipaal worden verleend met de rol Inzender om de bijbehorende Azure Event Hubs-naamruimte op te halen.

Voor Azure Spring Apps 4.0 bieden we twee manieren om beveiligingsprinciplen voor verificatie te gebruiken. Er wordt nog steeds gebruikgemaakt van de principals om verbinding te maken met ARM en de verbindingsreeks s op te halen waar de Contributor rol is vereist voor de principals. De andere maakt gebruik van beveiligingsprinciplen om te verifiëren bij Microsoft Entra ID en vervolgens rechtstreeks verbinding te maken met Azure Event Hubs. In dit geval is de Contributor rol niet meer nodig, terwijl andere Data gerelateerde rollen vereist zijn voor berichtenbewerkingen. Zie Toegang autoriseren met Microsoft Entra-id om ervoor te zorgen dat aan de beveiligingsprincipaal voldoende machtigingen zijn verleend voor toegang tot de Azure-resource.

Voor verificatie op basis van ARM wordt de volgende configuratiemigratie weergegeven, waarbij de toegewezen rol niet mag worden gewijzigd:

Verouderde configuratie:

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}

Notitie

De toegestane tenant-id waarden zijn: common, organizations, consumersof de tenant-id. Zie voor meer informatie over deze waarden het verkeerde eindpunt (persoonlijke en organisatieaccounts) van Fout AADSTS50020 - Gebruikersaccount van id-provider bestaat niet in de tenant. Zie De app met één tenant converteren naar meerdere tenants in Microsoft Entra ID voor meer informatie over het converteren van uw app met één tenant.

Moderne configuratie, eigenschappen voor azure-abonnements-id en resourcegroep zijn vereist:

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}

Notitie

De toegestane tenant-id waarden zijn: common, organizations, consumersof de tenant-id. Zie voor meer informatie over deze waarden het verkeerde eindpunt (persoonlijke en organisatieaccounts) van Fout AADSTS50020 - Gebruikersaccount van id-provider bestaat niet in de tenant. Zie De app met één tenant converteren naar meerdere tenants in Microsoft Entra ID voor meer informatie over het converteren van uw app met één tenant.

U kunt ook rechtstreeks migreren om te verifiëren en autoriseren met Microsoft Entra-id zonder een omleiding naar ARM te maken. Zorg ervoor dat u de beveiligingsprincipaal de benodigde Data rollen verleent voor berichtenbewerkingen. De configuratievoorbeelden van de service-principal en de beheerde identiteit worden als volgt weergegeven:

  • Met een service-principal

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

Notitie

De toegestane tenant-id waarden zijn: common, organizations, consumersof de tenant-id. Zie voor meer informatie over deze waarden het verkeerde eindpunt (persoonlijke en organisatieaccounts) van Fout AADSTS50020 - Gebruikersaccount van id-provider bestaat niet in de tenant. Zie De app met één tenant converteren naar meerdere tenants in Microsoft Entra ID voor meer informatie over het converteren van uw app met één tenant.

  • Met een beheerde identiteit

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

In de volgende tabel ziet u de klassetoewijzingen van azure-spring-cloud-stream-binder-eventhubs naar spring-cloud-azure-stream-binder-eventhubs.

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

Van azure-spring-cloud-stream-binder-servicebus-* tot spring-cloud-azure-stream-binder-servicebus

Deze handleiding is bedoeld om u te helpen bij de migratie naar spring-cloud-azure-stream-binder-servicebus van versie 2 van azure-spring-cloud-stream-binder-servicebus-queue of azure-spring-cloud-stream-binder-servicebus-topic.

Gebruik de volgende koppelingen voor algemene informatie:

SDK-configuratiewijzigingen

Belangrijk

Verouderde binder libaries zijn azure-spring-cloud-stream-binder-servicebus-queue en azure-spring-cloud-stream-binder-servicebus-topic, en nu worden ze samengevoegd in één spring-cloud-azure-stream-binder-servicebus.

Belangrijk

Het bindertype wordt gecombineerd van servicebus-queue en servicebus-topic als servicebus.

De volgende tabel bevat de nieuwe configuratie-eigenschappen van spring-cloud-azure-stream-binder-servicebus:

Moderne eigenschappen Beschrijving
spring.cloud.stream.servicebus.bindings.binding-name.producer.entity-type Als u de verzendende functie gebruikt, moet u het entiteitstype instellen, dat u kunt instellen op onderwerp of wachtrij.

In de volgende tabel ziet u de eigenschapstoewijzingen van azure-spring-cloud-stream-binder-servicebus-* naar spring-cloud-azure-stream-binder-servicebus:

Verouderde eigenschappen Moderne eigenschappen
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 of spring.cloud.azure.servicebus.retry.fixed.max-retries moeten worden geconfigureerd, afhankelijk van spring.cloud.azure.servicebus.retry.mode=fixed of exponential
spring.cloud.azure.servicebus.retry-options.delay spring.cloud.azure.servicebus.retry.exponential.base-delay of spring.cloud.azure.servicebus.retry.fixed.delay, moet worden geconfigureerd, afhankelijk van spring.cloud.azure.servicebus.retry.mode=vast of exponentieel
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.bindings.binding-name.consumer.Concurrency spring.cloud.stream.servicebus.bindings.binding-name.consumer.max-concurrent-sessions/max-concurrent-calls
spring.cloud.stream.servicebus.queue.bindings.bindings.binding-name.consumer.controlepuntmodus spring.cloud.stream.servicebus.bindings.binding-name.consumer.automatisch aanvullen
spring.cloud.stream.servicebus.topic.bindings.* spring.cloud.stream.servicebus.bindings.*
spring.cloud.stream.servicebus.topic.bindings.binding-name.consumer.Concurrency spring.cloud.stream.servicebus.bindings.binding-name.consumer.max-concurrent-sessions/max-concurrent-calls
spring.cloud.stream.servicebus.topic.bindings.binding-name.consumer.controlepuntmodus spring.cloud.stream.servicebus.bindings.binding-name.consumer.automatisch aanvullen

Notitie

De eigenschap gelijktijdigheid wordt vervangen door de maxConcurrentSessions wanneer sessionsEnabled is true en de maxConcurrentCalls wanneer sessionsEnabled is false.

Notitie

Het inschakelen van automatisch aanvullen is gelijk aan RECORD de controlepuntmodus en omgekeerd de MANUAL modus.

Voorbeelden van configuratiemigratie

Verouderde configuratie, waarbij de wachtrij als voorbeeld wordt gebruikt:

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

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

Als u beveiligingsprinciplen gebruikt in plaats van verbindingsreeks s, maakt de toepassing in versies vóór 4.0 eerst verbinding met Azure Resource Manager (ARM) met de opgegeven beveiligingsprincipaal en haalt u vervolgens de verbindingsreeks van de opgegeven naamruimte op met ARM. Uiteindelijk gebruikt de toepassing de opgehaalde verbindingsreeks om verbinding te maken met Azure Service Bus. Op deze manier moet de opgegeven beveiligingsprincipaal worden verleend met de rol Inzender om de bijbehorende Azure Service Bus-naamruimte op te halen.

Voor Azure Spring Apps 4.0 bieden we twee manieren om beveiligingsprinciplen voor verificatie te gebruiken. Er wordt nog steeds gebruikgemaakt van de principals om verbinding te maken met ARM en de verbindingsreeks s op te halen waar de Contributor rol is vereist voor de principals. De andere maakt gebruik van beveiligingsprinciplen om te verifiëren bij Microsoft Entra ID en vervolgens rechtstreeks verbinding te maken met Azure Service Bus. In dit geval is de Contributor rol niet meer nodig, terwijl andere Data gerelateerde rollen vereist zijn voor berichtenbewerkingen. Zie Toegang autoriseren met Microsoft Entra-id om ervoor te zorgen dat aan de beveiligingsprincipaal voldoende machtigingen zijn verleend voor toegang tot de Azure-resource.

Voor verificatie op basis van ARM wordt de volgende configuratiemigratie weergegeven, waarbij de toegewezen rol niet mag worden gewijzigd:

Verouderde configuratie:

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}

Notitie

De toegestane tenant-id waarden zijn: common, organizations, consumersof de tenant-id. Zie voor meer informatie over deze waarden het verkeerde eindpunt (persoonlijke en organisatieaccounts) van Fout AADSTS50020 - Gebruikersaccount van id-provider bestaat niet in de tenant. Zie De app met één tenant converteren naar meerdere tenants in Microsoft Entra ID voor meer informatie over het converteren van uw app met één tenant.

Moderne configuratie, eigenschappen voor azure-abonnements-id en resourcegroep zijn vereist:

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}

Notitie

De toegestane tenant-id waarden zijn: common, organizations, consumersof de tenant-id. Zie voor meer informatie over deze waarden het verkeerde eindpunt (persoonlijke en organisatieaccounts) van Fout AADSTS50020 - Gebruikersaccount van id-provider bestaat niet in de tenant. Zie De app met één tenant converteren naar meerdere tenants in Microsoft Entra ID voor meer informatie over het converteren van uw app met één tenant.

U kunt ook rechtstreeks migreren om te verifiëren en autoriseren met Microsoft Entra-id zonder een omleiding naar ARM te maken. Zorg ervoor dat u de beveiligingsprincipaal de benodigde Data rollen verleent voor berichtenbewerkingen. De configuratievoorbeelden van de service-principal en de beheerde identiteit worden als volgt weergegeven:

  • Met een service-principal

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

Notitie

De toegestane tenant-id waarden zijn: common, organizations, consumersof de tenant-id. Zie voor meer informatie over deze waarden het verkeerde eindpunt (persoonlijke en organisatieaccounts) van Fout AADSTS50020 - Gebruikersaccount van id-provider bestaat niet in de tenant. Zie De app met één tenant converteren naar meerdere tenants in Microsoft Entra ID voor meer informatie over het converteren van uw app met één tenant.

  • Met een beheerde identiteit

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

  • Berichtkop wegzetten AzureHeaders.RAW_ID. Gebruik in plaats daarvan ServiceBusMessageHeaders.MESSAGE_ID.

In de volgende tabel ziet u de klassetoewijzingen van azure-spring-cloud-stream-binder-eventhubs naar spring-cloud-azure-stream-binder-eventhubs.

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

De com.azure.spring:azure-spring-cloud-messaging bibliotheek is niet gereed voor 4.0. De functie van aantekeningen van de listener wordt opnieuw ontworpen, dus de @AzureMessageListener, @AzureMessageListenersen @EnableAzureMessaging aantekeningen worden momenteel niet ondersteund.