Przewodnik dla deweloperów platformy Azure platformy Spring Cloud
Ten artykuł dotyczy:✅ w wersji 4.19.0 ✅ w wersji 5.19.0
Spring to platforma aplikacji typu open source opracowana przez oprogramowanie VMware, która zapewnia uproszczone, modułowe podejście do tworzenia aplikacji Java. Spring Cloud Azure to projekt open source, który zapewnia bezproblemową integrację platformy Spring z platformą Azure.
Aby uzyskać więcej informacji na temat obsługiwanych wersji, zobacz Mapowanie wersji platformy Spring.
Uzyskiwanie pomocy
Jeśli masz jakiekolwiek pytania dotyczące tej dokumentacji, utwórz problem z usługą GitHub w jednym z następujących repozytoriów usługi GitHub. Żądania ściągnięcia są również mile widziane.
Repozytoria GitHub | Opis |
---|---|
azure/azure-sdk-for-java | To repozytorium przechowuje kod źródłowy. |
MicrosoftDocs/azure-dev-docs | To repozytorium zawiera dokumentację. |
Co nowego w wersji 4.0 od wersji 3.10.x
Ta dokumentacja obejmuje zmiany wprowadzone w wersji 4.0 od wersji 3.10. Ta główna wersja zapewnia lepsze zabezpieczenia, szczuplejsze zależności, obsługę gotowości produkcyjnej i nie tylko.
Napiwek
Aby uzyskać więcej informacji na temat migracji do wersji 4.0, zobacz przewodnik migracji dla wersji 4.0.
Poniższa lista zawiera podsumowanie niektórych zmian zapewnianych przez platformę Spring Cloud Azure 4.0:
- Ujednolicone środowisko programistyczne z ujednoliconą nazwą projektu, identyfikatorem artefaktu i właściwościami.
- Uproszczone zarządzanie zależnościami przy użyciu pojedynczego
spring-cloud-azure-dependencies
modelu BOM. - Rozszerzona obsługa platformy Azure w usłudze Spring Initializr na potrzeby platformy Kafka, usługi Event Hubs, usługi Azure Cache for Redis i usługi Azure App Configuration.
- Zależności modułu Spring z architekturą Rearchitected w celu usunięcia nadmiaru warstw i splątania.
- Obsługa tożsamości zarządzanej dla usług Azure App Configuration, Event Hubs, Service Bus, Azure Cosmos DB, Key Vault, Storage Blob i Storage Queue.
- Ciągła obsługa metod uwierzytelniania w podstawowym zestawie Azure SDK z naszych bibliotek Spring, takich jak token SAS i uwierzytelnianie poświadczeń tokenu za pomocą usług Service Bus i Event Hubs.
- Łańcuch poświadczeń jest teraz domyślnie włączony, umożliwiając aplikacjom uzyskiwanie poświadczeń z właściwości aplikacji, zmiennych środowiskowych, tożsamości zarządzanej, środowisk IDE itd. Aby uzyskać więcej informacji, zobacz sekcję DefaultAzureCredential biblioteki klienta Azure Identity dla języka Java.
- Szczegółowa kontrola dostępu na poziomie zasobów (na przykład kolejka usługi Service Bus), aby umożliwić lepsze zarządzanie zabezpieczeniami i przestrzeganie zasad IT.
- Więcej opcji uwidocznionych w sposób spring-idiomatic dzięki ulepszonemu automatycznemu pokryciu konfiguracji klientów zestawu Azure SDK zarówno synchronicznych, jak i asynchronicznych.
- Dodano wskaźniki kondycji dla usług Azure App Configuration, Event Hubs, Azure Cosmos DB, Key Vault, Storage Blob, Storage Queue i Storage File.
- Obsługa rozwiązania Spring Cloud Sleuth dla wszystkich zestawów SDK platformy Azure opartych na protokole HTTP.
Przewodnik migracji dla wersji 4.0
Aby uzyskać więcej informacji na temat migracji do wersji 4.0, zobacz przewodnik migracji dla wersji 4.0.
Wprowadzenie
Konfigurowanie zależności
Rachunek za materiały (BOM)
Jeśli używasz narzędzia Maven, dodaj element BOM do pliku pom.xml w sekcji dependencyManagement
, jak pokazano w poniższym przykładzie. W przypadku korzystania z modelu BOM nie trzeba określać wersji dla żadnych zależności narzędzia Maven, ponieważ przechowywanie wersji jest delegowane do modelu BOM.
<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>
Za pomocą narzędzia Gradle można zaimportować spring-cloud-azure-dependencies
BOM w następujący sposób:
Użyj natywnej obsługi modelu BOM narzędzia Gradle, dodając zależności, jak pokazano w poniższym przykładzie:
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}")) }
Użyj wtyczki
io.spring.dependency-management
i zaimportuj model BOM wdependencyManagement
, jak pokazano w poniższym przykładzie:plugins { id("io.spring.dependency-management") version "1.1.0" } dependencyManagement { imports { mavenBom("com.azure.spring:spring-cloud-azure-dependencies:{version}") } }
Aby uzyskać więcej informacji, zobacz Spring Boot Gradle Plugin Reference Guide.
Nuta
Jeśli używasz środowiska Spring Boot 2.x, ustaw wersję spring-cloud-azure-dependencies
na 4.19.0
.
Ten rachunek materiału (BOM) należy skonfigurować w sekcji <dependencyManagement>
pliku pom.xml. Gwarantuje to, że wszystkie zależności platformy Azure platformy Spring Cloud korzystają z tej samej wersji.
Aby uzyskać więcej informacji na temat wersji używanej dla tego modelu BOM, zobacz Której wersji platformy Spring Cloud platformy Azure należy używać.
Zależności początkowe
Spring Cloud Azure Starters to zestaw wygodnych deskryptorów zależności do uwzględnienia w aplikacji. Każdy starter zawiera wszystkie zależności i przejściowe zależności potrzebne do rozpoczęcia korzystania z odpowiedniego modułu platformy Azure spring cloud. Te szablony startowe zwiększają programowanie aplikacji Spring Boot za pomocą usług platformy Azure.
Jeśli na przykład chcesz rozpocząć korzystanie z platformy Spring i usługi Azure Cosmos DB na potrzeby trwałości danych, uwzględnij zależność spring-cloud-azure-starter-cosmos
w projekcie.
W poniższej tabeli wymieniono szablony startowe aplikacji udostępniane przez platformę Spring Cloud Azure w grupie com.azure.spring
:
Nazwa | Opis |
---|---|
spring-cloud-azure-starter | Podstawowy starter, w tym obsługa automatycznej konfiguracji. |
spring-cloud-azure-starter-active-directory | Początek korzystania z usługi Microsoft Entra ID z usługą Spring Security. |
spring-cloud-azure-starter-active-directory-b2c | Początek korzystania z usługi Azure Active Directory B2C z zabezpieczeniami Spring. |
spring-cloud-azure-starter-appconfiguration | Początek korzystania z usługi Azure App Configuration. |
spring-cloud-azure-starter-cosmos | Początek korzystania z usługi Azure Cosmos DB. |
spring-cloud-azure-starter-eventhubs | Początek korzystania z usługi Azure Event Hubs. |
spring-cloud-azure-starter-keyvault | Szablon startowy do korzystania z usługi Azure Key Vault. |
spring-cloud-azure-starter-keyvault-secrets | Początek korzystania z wpisów tajnych usługi Azure Key Vault. |
spring-cloud-azure-starter-keyvault-certificates | Starter do korzystania z certyfikatów usługi Azure Key Vault. |
spring-cloud-azure-starter-servicebus | Początek korzystania z usługi Azure Service Bus. |
spring-cloud-azure-starter-servicebus-jms | Starter do korzystania z usług Azure Service Bus i JMS. |
spring-cloud-azure-starter-storage | Początek korzystania z usługi Azure Storage. |
spring-cloud-azure-starter-storage-blob | Początek korzystania z obiektu blob usługi Azure Storage. |
spring-cloud-azure-starter-storage-file-share | Początek korzystania z udziału plików usługi Azure Storage. |
spring-cloud-azure-starter-storage-queue | Początek korzystania z kolejki usługi Azure Storage. |
spring-cloud-azure-starter-siłownik | Starter do korzystania z siłownika Spring Boot, który zapewnia gotowe do produkcji funkcje. |
W poniższej tabeli wymieniono początkowe informacje o obsłudze rozwiązania Spring Data:
Nazwa | Opis |
---|---|
spring-cloud-azure-starter-data-cosmos | Początek korzystania z usługi Spring Data dla usługi Azure Cosmos DB. |
W poniższej tabeli wymieniono początkowe informacje o obsłudze integracji platformy Spring:
Nazwa | Opis |
---|---|
spring-cloud-azure-starter-integration-eventhubs | Starter do korzystania z usług Azure Event Hubs i Spring Integration. |
spring-cloud-azure-starter-integration-servicebus | Starter do korzystania z usług Azure Service Bus i Spring Integration. |
spring-cloud-azure-starter-integration-storage-queue | Początek korzystania z kolejki usługi Azure Storage i integracji spring. |
W poniższej tabeli wymieniono początkowe informacje o obsłudze usługi Spring Cloud Stream:
Nazwa | Opis |
---|---|
spring-cloud-azure-starter-stream-eventhubs | Narzędzie startowe do korzystania z usług Azure Event Hubs i Spring Cloud Stream Binder. |
spring-cloud-azure-starter-stream-servicebus | Starter do korzystania z usług Azure Service Bus i Spring Cloud Stream Binder. |
W poniższej tabeli wymieniono początkowe informacje o obsłudze bazy danych MySQL:
Nazwa | Opis |
---|---|
spring-cloud-azure-starter-jdbc-mysql | Podstawowe informacje dotyczące korzystania z list Azure MySQLs i JDBC za pośrednictwem uwierzytelniania firmy Microsoft Entra. |
W poniższej tabeli wymieniono początkowe informacje o obsłudze bazy danych PostgreSQL:
Nazwa | Opis |
---|---|
spring-cloud-azure-starter-jdbc-postgresql | Podstawowe informacje dotyczące korzystania z usług Azure PostgreSQL i JDBC za pośrednictwem uwierzytelniania firmy Microsoft Entra. |
Konfigurowanie platformy Spring Boot 3
Żądania JAR zestawu Azure SDK wymagają weryfikacji podpisu. Jednak platforma Spring Boot 3 nie obsługuje weryfikacji podpisu JAR w trybie przedterminowym (AOT) na maszynie wirtualnej JVM i w przypadku obrazów natywnych. Aby uzyskać więcej informacji, zobacz Using Ahead-of-time Processing With the JVM and GraalVM Native Image Support.
Aby rozwiązać ten problem, wyłącz weryfikację podpisu JAR.
Utwórz plik custom.security w src/main/resources o następującej zawartości:
jdk.jar.disabledAlgorithms=MD2, MD5, RSA, DSA
Jeśli używasz narzędzia Maven, dodaj następującą konfigurację:
<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>
Jeśli używasz narzędzia Gradle, dodaj następującą konfigurację:
graalvmNative { binaries { main { buildArgs('-Djava.security.properties=' + file("$rootDir/custom.security").absolutePath) } } }
Learning Spring Cloud Azure
Aby uzyskać pełną listę przykładów pokazujących użycie, zobacz Spring Cloud Azure Samples.