Spring Cloud Azure 개발자 가이드
이 문서는✅ 버전 4.19.0 ✅ 버전 5.19.0에 적용됩니다.
Spring은 Java 애플리케이션을 만들기 위한 간소화된 모듈식 접근 방식을 제공하는 VMware에서 개발한 오픈 소스 애플리케이션 프레임워크입니다. Spring Cloud Azure는 Azure와 원활한 Spring 통합을 제공하는 오픈 소스 프로젝트입니다.
지원되는 버전에 대한 자세한 내용은 Spring 버전 매핑참조하세요.
도움말 보기
이 설명서에 대한 질문이 있는 경우 다음 GitHub 리포지토리 중 하나에서 GitHub 문제를 만듭니다. 끌어오기 요청도 환영합니다.
GitHub 리포지토리 | 묘사 |
---|---|
azure/azure-sdk-for-java |
이 리포지토리는 소스 코드를 보유합니다. |
MicrosoftDocs/azure-dev-docs |
이 리포지토리에는 설명서가 있습니다. |
3.10.x 이후 4.0의 새로운 기능
이 설명서에서는 3.10 이후 4.0에서 변경된 내용을 설명합니다. 이 주요 릴리스는 더 나은 보안, 간결한 종속성, 프로덕션 준비에 대한 지원 등을 제공합니다.
팁
4.0으로 마이그레이션하는 방법에 대한 자세한 내용은 4.0대한
다음 목록에는 Spring Cloud Azure 4.0에서 제공하는 일부 변경 내용이 요약되어 있습니다.
- 통합된 프로젝트 이름, 아티팩트 ID 및 속성을 사용하는 통합 개발 환경입니다.
- 단일
spring-cloud-azure-dependencies
BOM을 사용하여 종속성 관리를 간소화했습니다. - Kafka, Event Hubs, Azure Cache for Redis 및 Azure App Configuration을 포함하도록 Spring Initializr 대한 Azure 지원이 확장되었습니다.
- 과도한 계층 및 얽힘을 제거하기 위해 Spring 모듈 종속성을 다시 아키텍처화했습니다.
- Azure App Configuration, Event Hubs, Service Bus, Azure Cosmos DB, Key Vault, Storage Blob 및 스토리지 큐에 대한 관리 ID 지원.
- Service Bus 및 Event Hubs를 사용한 SAS 토큰 및 토큰 자격 증명 인증과 같은 Spring 라이브러리의 기본 Azure SDK 인증 방법에 대한 지속적인 지원.
- 이제 자격 증명 체인을 기본적으로 사용하도록 설정하여 애플리케이션이 애플리케이션 속성, 환경 변수, 관리 ID, IDE 등에서 자격 증명을 가져올 수 있도록 합니다. 자세한 내용은 Java
Azure Identity 클라이언트 라이브러리의 DefaultAzureCredential 섹션을 참조하세요. - 리소스 수준(예: Service Bus 큐)에서 세분화된 액세스 제어를 통해 보안 거버넌스를 향상시키고 IT 정책을 준수할 수 있습니다.
- 동기 및 비동기 시나리오 모두에 대해 Azure SDK 클라이언트의 자동 구성 검사 향상을 통해 스프링 Idiomatic 방식으로 더 많은 옵션이 노출됩니다.
- Azure App Configuration, Event Hubs, Azure Cosmos DB, Key Vault, Storage Blob, 스토리지 큐 및 스토리지 파일에 대한 상태 표시기가 추가되었습니다.
- 모든 HTTP 기반 Azure SDK에 대한 Spring Cloud Sleuth 지원.
4.0 마이그레이션 가이드
4.0으로 마이그레이션하는 방법에 대한 자세한 내용은 4.0대한
시작
종속성 설정
BOM(재료 대금 청구)
Maven을 사용하는 경우 다음 예제와 같이 dependencyManagement
섹션의 pom.xml 파일에 BOM을 추가합니다. BOM을 사용하는 경우 버전 관리가 BOM에 위임되므로 Maven 종속성의 버전을 지정할 필요가 없습니다.
<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>
Gradle을 사용하면 다음과 같은 방법으로 spring-cloud-azure-dependencies
BOM을 가져올 수 있습니다.
다음 예제와 같이 종속성을 추가하여 Gradle의 네이티브 BOM 지원을 사용합니다.
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}")) }
다음 예제와 같이
io.spring.dependency-management
플러그 인을 사용하고dependencyManagement
BOM을 가져옵니다.plugins { id("io.spring.dependency-management") version "1.1.0" } dependencyManagement { imports { mavenBom("com.azure.spring:spring-cloud-azure-dependencies:{version}") } }
자세한 내용은 Spring Boot Gradle 플러그 인 참조 가이드참조하세요.
메모
Spring Boot 2.x를 사용하는 경우 spring-cloud-azure-dependencies
버전을 4.19.0
설정해야 합니다.
이 BOM(Bill of Material)은 pom.xml 파일의 <dependencyManagement>
섹션에서 구성해야 합니다. 이렇게 하면 모든 Spring Cloud Azure 종속성이 동일한 버전을 사용합니다.
이 BOM에 사용되는 버전에 대한 자세한 내용은 사용해야 하는 Spring Cloud Azure 버전을 참조하세요.
시작 종속성
Spring Cloud Azure Starters는 애플리케이션에 포함할 편리한 종속성 설명자 집합입니다. 각 시작에는 해당 Spring Cloud Azure 모듈 사용을 시작하는 데 필요한 모든 종속성 및 전이적 종속성이 포함됩니다. 이러한 시작은 Azure 서비스를 사용하여 Spring Boot 애플리케이션 개발을 향상시킵니다.
예를 들어 데이터 지속성을 위해 Spring 및 Azure Cosmos DB 사용을 시작하려면 프로젝트에 spring-cloud-azure-starter-cosmos
종속성을 포함합니다.
다음 표에서는 com.azure.spring
그룹에서 Spring Cloud Azure에서 제공하는 애플리케이션 스타터를 나열합니다.
이름 | 묘사 |
---|---|
spring-cloud-azure-starter | 자동 구성 지원을 포함한 핵심 스타터입니다. |
spring-cloud-azure-starter-active-directory | Spring Security에서 Microsoft Entra ID를 사용하기 위한 시작입니다. |
spring-cloud-azure-starter-active-directory-b2c | Spring Security에서 Azure Active Directory B2C를 사용하기 위한 시작입니다. |
spring-cloud-azure-starter-appconfiguration | Azure App Configuration을 사용하기 위한 시작입니다. |
spring-cloud-azure-starter-cosmos | Azure Cosmos DB를 사용하기 위한 시작입니다. |
spring-cloud-azure-starter-eventhubs | Azure Event Hubs를 사용하기 위한 시작입니다. |
spring-cloud-azure-starter-keyvault | Azure Key Vault를 사용하기 위한 시작입니다. |
spring-cloud-azure-starter-keyvault-secrets | Azure Key Vault 비밀을 사용하기 위한 시작입니다. |
spring-cloud-azure-starter-keyvault-certificates | Azure Key Vault 인증서를 사용하기 위한 시작입니다. |
spring-cloud-azure-starter-servicebus | Azure Service Bus를 사용하기 위한 시작입니다. |
spring-cloud-azure-starter-servicebus-jms | Azure Service Bus 및 JMS를 사용하기 위한 시작입니다. |
spring-cloud-azure-starter-storage | Azure Storage를 사용하기 위한 시작입니다. |
spring-cloud-azure-starter-storage-blob | Azure Storage Blob을 사용하기 위한 시작입니다. |
spring-cloud-azure-starter-storage-file-share | Azure Storage 파일 공유를 사용하기 위한 시작입니다. |
spring-cloud-azure-starter-storage-queue | Azure Storage 큐를 사용하기 위한 시작입니다. |
spring-cloud-azure-starter-actuator | 프로덕션 준비 기능을 제공하는 Spring Boot의 Actuator를 사용하기 위한 시작입니다. |
다음 표에는 Spring Data 지원을 위한 시작 항목이 나와 있습니다.
이름 | 묘사 |
---|---|
spring-cloud-azure-starter-data-cosmos | Azure Cosmos DB용 Spring Data를 사용하기 위한 시작입니다. |
다음 표에는 Spring Integration 지원을 위한 시작 항목이 나와 있습니다.
이름 | 묘사 |
---|---|
spring-cloud-azure-starter-integration-eventhubs | Azure Event Hubs 및 Spring Integration을 사용하기 위한 시작입니다. |
spring-cloud-azure-starter-integration-servicebus | Azure Service Bus 및 Spring Integration을 사용하기 위한 시작입니다. |
spring-cloud-azure-starter-integration-storage-queue | Azure Storage 큐 및 Spring Integration을 사용하기 위한 시작입니다. |
다음 표에는 Spring Cloud Stream 지원을 위한 시작 항목이 나와 있습니다.
이름 | 묘사 |
---|---|
spring-cloud-azure-starter-stream-eventhubs | Azure Event Hubs 및 Spring Cloud Stream Binder를 사용하기 위한 시작 요소입니다. |
spring-cloud-azure-starter-stream-servicebus | Azure Service Bus 및 Spring Cloud Stream Binder를 사용하기 위한 시작입니다. |
다음 표에는 MySQL 지원을 위한 시작 항목이 나와 있습니다.
이름 | 묘사 |
---|---|
spring-cloud-azure-starter-jdbc-mysql | Microsoft Entra 인증을 통해 Azure MySQLs 및 JDBC를 사용하기 위한 시작 요소입니다. |
다음 표에는 PostgreSQL 지원에 대한 시작 항목이 나와 있습니다.
이름 | 묘사 |
---|---|
spring-cloud-azure-starter-jdbc-postgresql | Microsoft Entra 인증을 통해 Azure PostgreSQL 및 JDBC를 사용하기 위한 시작 요소입니다. |
Spring Boot 3 구성
Azure SDK JAR에는 서명 확인이 필요합니다. 그러나 Spring Boot 3은 JVM의 AOT(Ahead-Of-Time) 모드 및 네이티브 이미지에 대한 JAR 서명 확인을 지원하지 않습니다. 자세한 내용은 JVM
이 문제를 해결하려면 JAR 서명 확인을 사용하지 않도록 설정합니다.
다음 내용이 포함된 src/main/resourcescustom.security 파일을 만듭니다.
jdk.jar.disabledAlgorithms=MD2, MD5, RSA, DSA
Maven을 사용하는 경우 다음 구성을 추가합니다.
<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>
Gradle을 사용하는 경우 다음 구성을 추가합니다.
graalvmNative { binaries { main { buildArgs('-Djava.security.properties=' + file("$rootDir/custom.security").absolutePath) } } }
Spring Cloud Azure 학습
사용량을 보여 주는 샘플의 전체 목록은 Spring Cloud Azure 샘플참조하세요.