Azure Cosmos DB용 Azure Spring Data는 Azure Cosmos DB for NoSQL
이 가이드에서는 Azure Spring Data Azure Cosmos DB SDK의 개념, 지원되는 기능, 문제 해결 및 알려진 문제에 대해 설명합니다. 이러한 개념 및 코드 샘플에 대한 자세한 내용은 Azure Cosmos DB SDK용 Spring Data 추가 정보를 참조하세요.
버전 지원 정책
Spring Boot 버전 지원
이 프로젝트는 여러 Spring Boot 버전을 지원합니다. 자세한 내용은 Spring Boot 지원 정책참조하세요. Maven 사용자는 spring-boot-starter-parent 프로젝트를 상속받아 Spring이 종속성 버전을 관리할 수 있게 해 주는 종속성 관리 섹션을 사용할 수 있습니다. 자세한 내용은 Spring Boot 버전 지원참조하세요.
Spring Data 버전 지원
이 프로젝트는 다른 spring-data-commons 버전을 지원합니다. 자세한 내용은 Spring Data 버전 지원참조하세요.
Azure Spring Data의 Cosmos DB 버전 중 어느 것을 사용할지
Azure Spring Data Azure Cosmos DB 라이브러리는 여러 버전의 Spring Boot 및 Spring Cloud를 지원합니다. Spring Boot 및 Spring Cloud와 함께 사용할 Azure Spring Data for Azure Cosmos DB의 버전에 대한 자세한 내용은 Azure Cosmos DB용 Azure Spring Data는 어떤 버전을 사용해야 하나요?를 참조하세요.
시작
패키지를 포함하세요
Maven을 사용하는 경우 다음 종속성을 추가합니다.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-spring-data-cosmos</artifactId>
<version>LATEST</version>
</dependency>
필수 구성 요소
- JDK(Java Development Kit)버전 8 이상.
- 활성 Azure 계정입니다. 계정이 없는 경우 체험 계정등록할 수 있습니다. 또는 개발 및 테스트에 Azure Cosmos DB 에뮬레이터 사용할 수 있습니다. 에뮬레이터는 자체 서명된 HTTPS 인증서를 사용하므로 해당 인증서를 Java 신뢰할 수 있는 인증서 저장소로 가져와야 합니다.
- (선택 사항) SLF4J는 로깅 패사드입니다.
- (선택 사항) SLF4J 바인딩 사용하여 특정 로깅 프레임워크를 SLF4J와 연결합니다.
- (선택 사항) Maven
로깅을 사용하려는 경우에만 SLF4J가 필요합니다. 또한 SLF4J API를 선택한 로깅 구현과 연결하는 SLF4J 바인딩을 다운로드합니다. 자세한 내용은 SLF4J 사용자 설명서를 참고하세요.
구성 클래스 설정 및 사용자 지정
구성 클래스를 설정하려면 AbstractCosmosConfiguration를 확장합니다. 자세한 내용은 설정 구성 클래스참조하세요.
GatewayConnectionConfig, DirectConnectionConfig 또는 둘 다를 제공하고 이를 CosmosAsyncClient에 전달하여 Azure Spring Data Azure Cosmos DB SDK에서 사용하는 기본 CosmosClientBuilder을 사용자 지정할 수 있습니다. 전체 샘플은 사용자 지정 구성 섹션을 참조하세요.
엔터티 설정
간단한 엔터티를 Azure Cosmos DB 항목으로 정의할 수 있습니다. 주석을 @Container 추가하고 컨테이너와 관련된 속성을 지정하여 엔터티를 정의합니다. 자세한 내용은 엔터티 정의을 참조하세요.
컨테이너 주석은 컨테이너 이름, RU(요청 단위 ), TL(Time to Live), 자동 크기 조정 처리량, 중첩 파티션 키 지원 및 기타 컨테이너 속성을 사용하여 컨테이너 만들기를 지원합니다.
리포지토리 설정
Azure Spring Data Azure Cosmos DB는 다음과 같은 기본 CRUD 기능을 제공하는 ReactiveCrudRepository(비동기 API) 및 CrudRepository(동기화 API)를 지원합니다.
- 구해내다
- 모두 찾기
- ID로 단일 항목 찾기
- 모두 삭제
- ID로 삭제
- 엔터티 삭제
CosmosRepository(동기화 API 지원용) 또는 ReactiveCosmosRepository(비동기 API 지원용)을 확장하여 애플리케이션에 대한 Spring Data 리포지토리를 설정할 수 있습니다. 자세한 내용은 리포지토리 만들기참조하세요.
Azure Spring Data Azure Cosmos DB 사용하여 리포지토리에 주석이 추가된 쿼리를 지정할 수 있습니다@Query. 자세한 내용은 QueryAnnotation: 리포지토리에서 주석이 추가된 쿼리 사용에 관한 항목을 참조하십시오.
Spring Data 애노테이션
Spring Data @Id 애노테이션
도메인 클래스의 필드를 여러 가지 방법으로 매핑할 id 수 있습니다. 자세한 내용은 spring 데이터 ID 주석 코드 섹션를 참조하십시오.
ID 자동 생성
Azure Spring Data Azure Cosmos DB는 @GeneratedValue 어노테이션을 사용하여 ID를 자동으로 생성하는 기능을 지원합니다. 자세한 내용은 ID 자동 생성 섹션참조하세요.
SpEL 식 및 사용자 지정 컨테이너 이름
기본적으로 컨테이너 이름은 사용자 도메인 클래스의 클래스 이름입니다. 컨테이너 이름을 사용자 지정하려면 도메인 클래스에 @Container(containerName="myCustomContainerName") 주석을 추가합니다. 자세한 내용은 SpEL 식 및 사용자 지정 컨테이너 이름 섹션참조하세요.
사용자 정의 색인 정책
기본적으로 Azure 서비스는 IndexingPolicy를 설정합니다. 사용자 지정 IndexingPolicy하려면 도메인 클래스에 @CosmosIndexingPolicy 주석을 추가합니다. 자세한 내용은 인덱싱 정책 섹션참조하세요.
고유 키 정책
Azure Spring Data Azure Cosmos DB는 도메인 클래스에 UniqueKeyPolicy 애너테이션을 추가하여 컨테이너에 @CosmosUniqueKeyPolicy를 설정하는 것을 지원합니다. 자세한 내용은
Azure Cosmos DB 파티션
도메인 클래스의 필드를 파티션 키 필드로 지정하려면 해당 필드에 @PartitionKey 어노테이션을 추가합니다.
CRUD 작업을 수행할 때 파티션 값을 지정합니다.
자세한 내용은 여기 섹션
낙관적 잠금
Azure-spring-data-cosmos 는 특정 컨테이너에 대한 낙관적 잠금을 지원합니다. 이 지원은 다른 프로세스가 항목을 수정하는 경우 예외를 제외하고 항목별 upsert 및 삭제가 실패한다는 것을 의미합니다. 자세한 내용은 낙관적 잠금 섹션참조하세요.
Spring Data 사용자 지정 쿼리, 페이징 가능 및 정렬
Azure-spring-data-cosmos는 다음과 같은 findByAFieldAndBField찾기 작업과 같은 Spring Data 사용자 지정 쿼리를 지원합니다. Spring Data Pageable, Slice 및 Sort도 지원합니다. 자세한 내용은 쿼리, 페이징 가능 및 정렬 섹션을 참조하세요.
Spring Data Cosmos를 통해 Azure Cosmos DB Java SDK 사용
Azure-spring-data-cosmos는 Azure Cosmos DB Java SDK 사용을 지원합니다.
CosmosAsyncClient를 통해 ApplicationContext 또는 CosmosClient 빈을 가져와 Azure Cosmos DB Java SDK에서 지원하는 모든 작업을 실행할 수 있습니다. 자세한 내용은 Spring Data Cosmos 섹션통해 Azure Cosmos 클라이언트를 사용하는
Spring Data REST
감사
Azure-spring-data-cosmos 는 표준 spring-data 주석을 사용하여 데이터베이스 엔터티에 대한 감사 필드를 지원합니다. 자세한 내용은 Spring Data Azure Cosmos DB 감사 섹션참조하세요.
다중 데이터베이스 구성
Azure-spring-data-cosmos 는 여러 데이터베이스 계정 및 여러 데이터베이스가 있는단일 계정을 포함하여 다중 데이터베이스 구성을 지원합니다. 전체 코드 조각은
문제 해결
일반
버그가 발생하면 여기에 문제를 제출 합니다.
새 기능 또는 변경 내용을 제안하려면 버그와 동일한 방식으로 문제를 제출합니다.
클라이언트 로깅을 활성화합니다
Azure-spring-data-cosmos log4j 및 logback과 같은 인기 있는 로깅 프레임워크에 대한 로그인을 지원하는 로깅 외관으로 SLF4j를 사용합니다. 자세한 내용은 클라이언트 로깅 활성화 섹션을 참조하세요.
예제
전체 샘플 프로젝트는 샘플 프로젝트참조하세요.
다중 데이터베이스 계정
전체 샘플 프로젝트는 여러 데이터베이스 샘플 프로젝트를 참조하세요.
다중 데이터베이스를 사용하는 단일 계정
전체 샘플 프로젝트는 여러 데이터베이스 샘플 프로젝트가 있는 단일 계정을 참조하세요.
다음 단계
- Azure Spring Data Azure Cosmos DB대해 자세히 알아보세요.
- Azure Cosmos DB 서비스에 대해 자세히 알아보세요.
- Azure Spring Data Azure Cosmos DB 샘플을 참조하세요.
- Azure Cosmos DB 샘플이 있는 Spring MVC를 참조하세요.
기여
이 프로젝트는 기여와 제안을 환영합니다. 대부분의 기여는 당신이 기여를 사용할 권리를 우리에게 부여할 권리가 있으며 실제로 그렇게 한다는 것을 선언하는 기여자 사용권 계약 (CLA)에 동의해야 합니다.
끌어오기 요청을 제출하면 CLA 봇은 CLA를 제공하고 PR을 적절하게 데코레이트해야 하는지 여부를 자동으로 결정합니다(예: 레이블, 주석). 봇에서 제공하는 지침을 따르기만 하면 됩니다. CLA를 사용하여 모든 리포지토리에서 한 번만 이 작업을 수행해야 합니다.
이 프로젝트는 Microsoft 오픈 소스 행동 강령