Guide för Azure Cosmos DB-utvecklare
Azure Spring Data för Azure Cosmos DB tillhandahåller Spring Data-stöd för 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 läsemplet Spring Data for Azure Cosmos DB SDK.
Princip för versionsstöd
Stöd för Spring Boot-version
Det här projektet stöder flera Spring Boot-versioner. Mer information finns i Supportprincip för Spring Boot. Maven-användare kan ärva från spring-boot-starter-parent
projektet för att få ett beroendehanteringsavsnitt för att låta Spring hantera versionerna för beroenden. Mer information finns i Support för Spring Boot-version.
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?.
Kom 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 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, som beskrivs 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 till SLF4J.
Konfigurera och anpassa konfigurationsklassen
För att kunna konfigurera konfigurationsklassen måste du utöka AbstractCosmosConfiguration
. Mer information finns i Konfigurera konfigurationsklass.
Du kan anpassa underliggande CosmosAsyncClient
som används av Azure Spring Data Azure Cosmos DB SDK genom att tillhandahålla DirectConnectionConfig
eller GatewayConnectionConfig
båda och ge dem till CosmosClientBuilder
. Ett fullständigt exempel finns i avsnittet om att anpassa konfigurationen.
Entitetskonfiguration
Du kan definiera en enkel entitet som objekt i Azure Cosmos DB. Du kan definiera entiteter genom att lägga till anteckningen @Container
och ange egenskaper som är relaterade till containern. Mer information finns i Definiera en entitet.
Containerkommentarer har stöd för att ange containernamn, enheter för begäranden (RU), time to live, skapa containrar med autoskalningsdataflöde, stöd för kapslad partitionsnyckel och 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
- findAll
- findOne efter ID
- deleteAll
- 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 kommenterade frågor i lagringsplatserna med hjälp av @Query
. Mer information finns i QueryAnnotation : Using annotated querys in repositories (FrågaAnnotation: Använda kommenterade frågor i lagringsplatser).
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 om vårdata-ID-anteckningskod.
Automatisk ID-generering
Azure Spring Data Azure Cosmos DB stöder automatisk generering av ID:er med anteckningen @GeneratedValue . Mer information finns i avsnittet automatisk ID-generering.
SpEL-uttryck och anpassat containernamn
Som standard är containernamnet klassnamnet för användardomänklassen. Om du vill anpassa lägger du till anteckningen @Container(containerName="myCustomContainerName")
i domänklassen. Mer information finns i avsnittet SpEL-uttryck och anpassat containernamn.
Anpassad indexeringPolicy
Som standard IndexingPolicy
anges av Azure-tjänsten. Om du vill anpassa lägger du till anteckningen @CosmosIndexingPolicy
i domänklassen. Mer information finns i avsnittet indexeringsprincip.
Princip för unik nyckel
Azure Spring Data Azure Cosmos DB stöder inställning UniqueKeyPolicy
på containern genom att lägga till anteckningen @CosmosUniqueKeyPolicy
i domänklassen. Mer information finns i avsnittet om 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 avsnittet 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. Mer information finns i avsnittet optimistisk låsning.
Anpassad Spring Data-fråga, växlingsbar och sortering
Azure-spring-data-cosmos
stöder anpassade Spring Data-frågor, till exempel en sökåtgärd som findByAFieldAndBField
. Den stöder även Spring Data Pageable, Slice och Sort. Mer information finns i avsnittet fråga, växlingsbar information 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
bean igenom ApplicationContext
och köra åtgärder som stöds av Azure Cosmos DB Java SDK. Mer information finns i avsnittet använda Azure Cosmos-klienten via 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 granskningsfält på databasentiteter med vanliga spring-data-anteckningar. Mer information finns i avsnittet Spring Data Azure Cosmos DB-granskning.
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 för flera databaser.
Felsökning
Allmänt
Om du stöter på en bugg kan du skapa 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 för flera databaser.
Enskilt konto med flera databaser
Ett fullständigt exempelprojekt finns i exempelprojektet Single account with Multi-database (Enskilt konto med flera databaser).
Nästa steg
- Läs mer om Azure Spring Data Azure Cosmos DB.
- Läs mer om Azure Cosmos DB-tjänsten
- Se Azure Spring Data Azure Cosmos DB-exempel
- Se Spring MVC med Azure Cosmos DB-exempel
Bidrar
Det här projektet välkomnar bidrag och förslag. De flesta bidrag kräver att du godkänner ett licensavtal för deltagare (CLA) som förklarar att du har rätt att, och faktiskt gör det, ge oss rätten att använda ditt bidrag.
När du skickar en pull-begäran kommer en CLA-robot automatiskt att avgöra om du behöver tillhandahålla en CLA och dekorera PR på rätt sätt (till exempel etikett, 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 (Microsofts regler för uppförande för öppen källkod). Mer information finns i Vanliga frågor och svar om uppförandekod eller kontakt opencode@microsoft.com med andra frågor eller kommentarer.