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 independencyManagement
, 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.
Creare un file
custom.security in src/main/resources con il contenuto seguente: jdk.jar.disabledAlgorithms=MD2, MD5, RSA, DSA
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.