Condividi tramite


Guida per sviluppatori di Spring Cloud Azure

Questo articolo si applica a:✅ versione 4.19.0 ✅ versione 5.19.0

Spring è un framework applicativo open source sviluppato da VMware che offre un approccio modulare semplificato per la creazione di applicazioni Java. Spring Cloud Azure è un progetto open source che offre un'integrazione spring senza problemi con Azure.

Per altre informazioni sulle versioni supportate, vedere Spring Versions Mapping.

Ottenere assistenza

In caso di domande su questa documentazione, creare un problema di GitHub in uno dei repository GitHub seguenti. Anche le richieste pull sono benvenute.

Repository GitHub Descrizione
Azure/azure-sdk-for-java Questo repository contiene il codice sorgente.
MicrosoftDocs/azure-dev-docs Questo repository contiene la documentazione.

Novità della versione 4.0 dalla versione 3.10.x

Questa documentazione illustra le modifiche apportate nella versione 4.0 dalla versione 3.10. Questa versione principale offre maggiore sicurezza, dipendenze più snella, supporto per l'idoneità alla produzione e altro ancora.

Mancia

Per altre informazioni sulla migrazione alla versione 4.0, vedere Migration guide for 4.0.

L'elenco seguente riepiloga alcune delle modifiche fornite da Spring Cloud Azure 4.0:

  • Esperienza di sviluppo unificata, con nome di progetto unificato, ID artefatto e proprietà.
  • Gestione semplificata delle dipendenze tramite una singola distinta base spring-cloud-azure-dependencies.
  • È stato esteso il supporto di Azure in Spring Initializr per coprire Kafka, Hub eventi, Cache Redis di Azure e Configurazione app di Azure.
  • Dipendenze del modulo Spring riprogettate per rimuovere i livelli in eccesso e l'entanglement.
  • Supporto delle identità gestite per Configurazione app di Azure, Hub eventi, bus di servizio, Azure Cosmos DB, Insieme di credenziali delle chiavi, BLOB di archiviazione e coda di archiviazione.
  • Supporto continuo per i metodi di autenticazione nell'SDK di Azure sottostante dalle librerie Spring, ad esempio token di firma di accesso condiviso e autenticazione delle credenziali dei token con il bus di servizio e Hub eventi.
  • La catena di credenziali è ora abilitata per impostazione predefinita, consentendo alle applicazioni di ottenere le credenziali dalle proprietà dell'applicazione, dalle variabili di ambiente, dall'identità gestita, dagli IDE e così via. Per altre informazioni, vedere la sezione DefaultAzureCredential di libreria client di Azure Identity per Java.
  • Controllo di accesso granulare a livello di risorsa ,ad esempio coda del bus di servizio, per consentire una migliore governance della sicurezza e conformità ai criteri IT.
  • Altre opzioni esposte in modo idiotico Spring tramite una migliore copertura della configurazione automatica dei client Azure SDK per scenari sincroni e asincroni.
  • Sono stati aggiunti indicatori di integrità per Configurazione app di Azure, Hub eventi, Azure Cosmos DB, Key Vault, BLOB di archiviazione, coda di archiviazione e file di archiviazione.
  • Supporto di Spring Cloud Sleuth per tutti gli SDK di Azure basati su HTTP.

Guida alla migrazione per la versione 4.0

Per altre informazioni sulla migrazione alla versione 4.0, vedere Migration guide for 4.0.

Introduttiva

Configurazione delle dipendenze

Distinta base (BOM)

Se si usa Maven, aggiungere la distinta base al file pom.xml nella sezione dependencyManagement, come illustrato nell'esempio seguente. Quando si usa la distinta base, non è necessario specificare le versioni per una delle dipendenze Maven perché il controllo delle versioni viene delegato alla distinta base.

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

Con Gradle, è possibile importare la distinta base spring-cloud-azure-dependencies nei modi seguenti:

  • Usare il supporto bom nativo di Gradle aggiungendo dipendenze, come illustrato nell'esempio seguente:

    import org.springframework.boot.gradle.plugin.SpringBootPlugin
    
    plugins {
      id("java")
      id("org.springframework.boot") version "3.2.O"
    }
    
    dependencies {
        implementation(platform(SpringBootPlugin.BOM_COORDINATES))
        implementation(platform("com.azure.spring:spring-cloud-azure-dependencies:{version}"))
    }
    
  • Usare il plug-in io.spring.dependency-management e importare la distinta base in dependencyManagement, come illustrato nell'esempio seguente:

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

Per altre informazioni, vedere Spring Boot Gradle Plugin Reference Guide.

Nota

Se si usa Spring Boot 2.x, assicurarsi di impostare la versione spring-cloud-azure-dependencies su 4.19.0. Questa distinta base deve essere configurata nella sezione <dependencyManagement> del file di pom.xml. In questo modo tutte le dipendenze di Spring Cloud Azure usano la stessa versione. Per altre informazioni sulla versione usata per questa distinta base, vedere quale versione di Spring Cloud Azure deve usare.

Dipendenze di avvio

Spring Cloud Azure Starters è un set di utili descrittori di dipendenza da includere nell'applicazione. Ogni avvio contiene tutte le dipendenze e le dipendenze transitive necessarie per iniziare a usare il modulo Spring Cloud Azure corrispondente. Questi strumenti di avvio migliorano lo sviluppo di applicazioni Spring Boot con i servizi di Azure.

Ad esempio, se si vuole iniziare a usare Spring e Azure Cosmos DB per la persistenza dei dati, includere la dipendenza spring-cloud-azure-starter-cosmos nel progetto.

La tabella seguente elenca gli starter dell'applicazione forniti da Spring Cloud Azure nel gruppo com.azure.spring:

Nome Descrizione
spring-cloud-azure-starter Lo starter principale, incluso il supporto della configurazione automatica.
spring-cloud-azure-starter-active-directory Lo starter per l'uso di Microsoft Entra ID con Spring Security.
spring-cloud-azure-starter-active-directory-b2c Lo strumento di avvio per l'uso di Azure Active Directory B2C con Spring Security.
spring-cloud-azure-starter-appconfiguration L'avvio per l'uso di Configurazione app di Azure.
spring-cloud-azure-starter-cosmos Lo starter per l'uso di Azure Cosmos DB.
spring-cloud-azure-starter-eventhubs Lo starter per l'uso di Hub eventi di Azure.
spring-cloud-azure-starter-keyvault Starter per l'uso di Azure Key Vault.
spring-cloud-azure-starter-keyvault-secrets Lo starter per l'uso dei segreti di Azure Key Vault.
spring-cloud-azure-starter-keyvault-certificates Lo starter per l'uso dei certificati di Azure Key Vault.
spring-cloud-azure-starter-servicebus Lo starter per l'uso del bus di servizio di Azure.
spring-cloud-azure-starter-servicebus-jms Lo starter per l'uso del bus di servizio di Azure e di JMS.
spring-cloud-azure-starter-storage Lo starter per l'uso di Archiviazione di Azure.
spring-cloud-azure-starter-storage-blob Lo strumento iniziale per l'uso del BLOB di archiviazione di Azure.
spring-cloud-azure-starter-storage-file-share Lo starter per l'uso di Condivisione file di Archiviazione di Azure.
spring-cloud-azure-starter-storage-queue Lo starter per l'uso della coda di archiviazione di Azure.
spring-cloud-azure-starter-accelerator Lo starter per l'uso dell'attuatore di Spring Boot, che fornisce funzionalità pronte per la produzione.

La tabella seguente elenca gli starter per il supporto di Spring Data:

Nome Descrizione
spring-cloud-azure-starter-data-cosmos Avvio per l'uso di Spring Data per Azure Cosmos DB.

La tabella seguente elenca gli starter per il supporto di Spring Integration:

Nome Descrizione
spring-cloud-azure-starter-integration-eventhubs Lo strumento di avvio per l'uso di Hub eventi di Azure e Spring Integration.
spring-cloud-azure-starter-integration-servicebus Avvio per l'uso del bus di servizio di Azure e dell'integrazione spring.
spring-cloud-azure-starter-integration-storage-queue Lo strumento iniziale per l'uso della coda di archiviazione di Azure e dell'integrazione spring.

La tabella seguente elenca gli starter per il supporto di Spring Cloud Stream:

Nome Descrizione
spring-cloud-azure-starter-stream-eventhubs Gli starter per l'uso di Hub eventi di Azure e Spring Cloud Stream Binder.
spring-cloud-azure-starter-stream-servicebus Lo strumento di avvio per l'uso del bus di servizio di Azure e di Spring Cloud Stream Binder.

La tabella seguente elenca gli starter per il supporto di MySQL:

Nome Descrizione
spring-cloud-azure-starter-jdbc-mysql Gli starter per l'uso di Azure MySQLs e JDBC tramite l'autenticazione di Microsoft Entra.

La tabella seguente elenca gli starter per il supporto di PostgreSQL:

Nome Descrizione
spring-cloud-azure-starter-jdbc-postgresql Gli starter per l'uso di Azure PostgreSQL e JDBC tramite l'autenticazione di Microsoft Entra.

Configurazione di Spring Boot 3

I FILE JAR di Azure SDK richiedono la verifica della firma. Tuttavia, Spring Boot 3 non supporta la verifica della firma JAR per la modalità AOT (Ahead-of-Time) in una JVM e per le immagini native. Per altre informazioni, vedere Using Ahead-of-Time Processing With the JVM and GraalVM Native Image Support.

Per risolvere questo problema, disabilitare la verifica della firma JAR.

  1. Creare un file custom.security in src/main/resources con il contenuto seguente:

    jdk.jar.disabledAlgorithms=MD2, MD5, RSA, DSA
    
  2. Se si usa Maven, aggiungere la configurazione seguente:

    <plugin>
        <groupId>org.graalvm.buildtools</groupId>
        <artifactId>native-maven-plugin</artifactId>
        <configuration>
            <buildArgs>
                <arg>-Djava.security.properties=src/main/resources/custom.security</arg>
            </buildArgs>
        </configuration>
    </plugin>
    

    Se si usa Gradle, aggiungere la configurazione seguente:

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

Learning Spring Cloud Azure

Per un elenco completo degli esempi che mostrano l'utilizzo, vedere Spring Cloud Azure Samples.