Dela via


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

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.

visningar