Utvecklingsguide för Azure Cosmos DB
Azure Spring Data för Azure Cosmos DB erbjuder stöd för Spring Data till Azure Cosmos DB för NoSQL. Azure Cosmos DB är en globalt distribuerad databastjänst som gör att utvecklare kan arbeta med data med hjälp av olika standard-API:er, till exempel SQL, MongoDB, Cassandra, Graph och Table.
Den här guiden beskriver begreppen i Azure Spring Data Azure Cosmos DB SDK, funktioner som stöds, felsökning och kända problem. Mer information om begreppen nedan och kodexempel finns i Spring Data for Azure Cosmos DB SDK readme.
Princip för versionsstöd
Stöd för Spring Boot-version
Det här projektet stöder flera Spring Boot-versioner. För mer information, se Supportpolicy för Spring Boot. Maven-användare kan ärva från spring-boot-starter-parent
-projektet för att få ett beroendehanteringsavsnitt så att Spring kan hantera versionerna för beroenden. Mer information finns i Spring Boot Version Support.
Stöd för Spring Data-version
Det här projektet stöder olika spring-data-commons-versioner. Mer information finns i Spring Data Version Support.
Vilken version av Azure Spring Data Azure Cosmos DB som ska användas
Azure Spring Data Azure Cosmos DB-biblioteket stöder flera versioner av Spring Boot/Spring Cloud. Mer information om vilken version av Azure Spring Data Azure Cosmos DB som ska användas med Spring Boot/Spring Cloud-versionen finns i Vilken version av Azure Spring Data för Azure Cosmos DB ska jag använda?.
Sätta igång
Inkludera paketet
Om du använder Maven lägger du till följande beroende.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-spring-data-cosmos</artifactId>
<version>LATEST</version>
</dependency>
Förutsättningar
- Java Development Kit (JDK), version 8 eller senare.
- Ett aktivt Azure-konto. Om du inte har ett konto kan du registrera dig för ett kostnadsfritt konto. Du kan också använda Azure Cosmos DB-emulatorn för utveckling och testning. Eftersom emulatorns https-certifikat är självsignerat måste du importera certifikatet till java trusted cert store, förklaras här
- (Valfritt) SLF4J är en loggningsfasad.
- (Valfritt) SLF4J-bindning används för att associera ett specifikt loggningsramverk med SLF4J.
- (Valfritt) Maven
SLF4J behövs bara om du planerar att använda loggning, även ladda ned en SLF4J-bindning, som länkar SLF4J-API:et till valfri loggningsimplementering. Mer information finns i användarhandboken för SLF4J.
Konfigurera och anpassa konfigurationsklassen
För att kunna konfigurera konfigurationsklassen måste du utöka AbstractCosmosConfiguration
. Mer information finns i Konfigurationsklass.
Du kan anpassa det underliggande CosmosAsyncClient
som används av Azure Spring Data och Azure Cosmos DB SDK genom att tillhandahålla DirectConnectionConfig
, GatewayConnectionConfig
, eller båda, och ge dem till CosmosClientBuilder
. För ett fullständigt exempel, besök avsnittet för anpassning av konfiguration .
Entitetskonfiguration
Du kan definiera en enkel entitet som objekt i Azure Cosmos DB. Du kan definiera entiteter genom att lägga till @Container
anteckning och ange egenskaper som är relaterade till containern. Mer information finns i Definiera en entitet.
Containeranteckning har stöd för att ange containernamnet, begäranheter (RU:er), tidsgräns, för att skapa containrar med autoskalningsgenomströmning, stöd för kapslad partitionsnyckeloch andra containeregenskaper.
Konfiguration av lagringsplats
Azure Spring Data Azure Cosmos DB stöder ReactiveCrudRepository
(asynkrona API:er) och CrudRepository
(synkroniserings-API:er), som tillhandahåller följande grundläggande CRUD-funktioner:
- spara
- hittaAlla
- findOne med ID
- radera alla
- ta bort med ID
- ta bort entitet
Du kan utöka CosmosRepository
(för stöd för synkroniserings-API) eller ReactiveCosmosRepository
(för asynkront API-stöd) för att konfigurera Spring Data-lagringsplatser för ditt program. Mer information finns i Skapa lagringsplatser.
Azure Spring Data Azure Cosmos DB har stöd för att ange annoterade frågeställningar i repositoryn med hjälp av @Query
. Mer information finns i QueryAnnotation: Använda annoterade förfrågningar i arkiv.
Spring Data-anteckningar
Spring Data @Id-kommentar
Det finns flera sätt att mappa ett fält i domänklassen till id
. Mer information finns i avsnittet källdata-ID-anteckningskod.
Automatisk ID-generering
Azure Spring Data Azure Cosmos DB stöder automatisk generering av ID:er med hjälp av @GeneratedValue kommentar. Mer information finns i avsnittet automatisk generering av ID.
SpEL-uttryck och anpassat containernamn
Som standard är containernamnet klassnamnet för användardomänklassen. Om du vill anpassa lägger du till @Container(containerName="myCustomContainerName")
-anteckningen i domänklassen. För mer information, se avsnittet om SpEL-uttryck och anpassade containernamn.
Anpassad indexeringspolicy
Som standard anges IndexingPolicy
av Azure-tjänsten. Om du vill anpassa lägger du till anteckningen @CosmosIndexingPolicy
till domänklassen. För mer information, se avsnittet om indexeringsprinciper.
Princip för unik nyckel
Azure Spring Data Azure Cosmos DB stöder inställning UniqueKeyPolicy
i containern genom att lägga till anteckningen @CosmosUniqueKeyPolicy
till domänklassen. Mer information finns i avsnittet unik nyckelprincip.
Azure Cosmos DB-partition
Azure-spring-data-cosmos
stöder Azure Cosmos DB-partitioner.
Om du vill ange att ett fält i domänklassen ska vara ett partitionsnyckelfält kommenterar du det med @PartitionKey
.
När du utför CRUD-åtgärden anger du partitionsvärdet.
Mer information finns i avsnitt test här.
Optimistisk låsning
Azure-spring-data-cosmos
stöder optimistisk låsning för specifika containrar, vilket innebär att upserts/deletes by item misslyckas med ett undantag om objektet ändras av en annan process under tiden. För mer information, se avsnittet om optimistisk låsning.
Anpassad Spring Data-fråga, paginering och med sortering
Azure-spring-data-cosmos
stöder anpassade Spring Data-frågor, till exempel en sökåtgärd som findByAFieldAndBField
. Det stöder också Spring Data Pageable, Slice och Sort. För mer information, se frågan och avsnittet om sidindelning och sortering.
Använda Azure Cosmos DB Java SDK via Spring Data Cosmos
Azure-spring-data-cosmos
stöder användning av Azure Cosmos DB Java SDK
. Användare kan hämta CosmosClient
eller CosmosAsyncClient
böna via ApplicationContext
och köra åtgärder som stöds av Azure Cosmos DB Java SDK. Mer information finns i avsnittet om att använda Azure Cosmos-klienten genom Spring Data Cosmos.
Spring Data REST
Azure-spring-data-cosmos
stöder Spring Data REST-. Mer information finns i avsnittet Azure Spring Data Azure Cosmos DB REST API.
Granskning
Azure-spring-data-cosmos
stöder revisionsfält på databasentiteter genom standardkommentarer för Spring-Data. Mer information finns i granskningsavsnittet Spring Data Azure Cosmos DB.
Konfiguration av flera databaser
Azure-spring-data-cosmos
stöder konfiguration av flera databaser, inklusive "flera databaskonton" och "enskilt konto med flera databaser". Ett fullständigt kodfragment finns i avsnittet konfiguration av flera databaser.
Felsökning
Allmänt
Om du stöter på en bugg kan du ange ett problem här.
Om du vill föreslå en ny funktion eller ändringar som kan göras kan du ange ett problem på samma sätt som för en bugg.
Aktivera klientloggning
Azure-spring-data-cosmos
använder SLF4j som loggningsfasad som stöder inloggning i populära loggningsramverk som log4j och logback. Mer information finns i avsnittet aktivera klientloggning.
Exempel
Ett fullständigt exempelprojekt finns i exempelprojektet.
Konton med flera databaser
Ett fullständigt exempelprojekt finns i exempelprojektet med flera databaser .
Enskilt konto med flera databaser
För ett komplett exempelprojekt, se Ensamt konto med exempelprojekt för flera databaser.
Nästa steg
- Läs mer om Azure Spring Data Azure Cosmos DB.
- Läs mer om Azure Cosmos DB Service
- Se på exemplen för Azure Spring Data Azure Cosmos DB
- Se Spring MVC med Azure Cosmos DB-exempel
Bidrag
Det här projektet välkomnar bidrag och förslag. De flesta bidrag kräver att du samtycker till ett deltagarlicensavtal (CLA) som förklarar att du har rätt att, och faktiskt gör, ge oss rätt att använda ditt bidrag.
När du skickar en pull-begäran avgör en CLA-bot automatiskt om du behöver tillhandahålla en CLA och märker PR på rätt sätt – till exempel med en etikett eller kommentar. Följ bara anvisningarna från roboten. Du behöver bara göra detta en gång över alla lagringsplatser med hjälp av vår CLA.
Det här projektet har antagit Microsoft Open Source Code of Conduct. Mer information finns i vanliga frågor och svar om uppförandekod eller kontakta opencode@microsoft.com med andra frågor eller kommentarer.