Azure Cosmos DB – handleiding voor ontwikkelaars

Azure Spring Data voor Azure Cosmos DB biedt Spring Data-ondersteuning voor Azure Cosmos DB voor NoSQL. Azure Cosmos DB is een wereldwijd gedistribueerde databaseservice waarmee ontwikkelaars met gegevens kunnen werken met behulp van verschillende standaard-API's, zoals SQL, MongoDB, Cassandra, Graph en Table.

In deze handleiding wordt u begeleid bij de concepten van azure Spring Data Azure Cosmos DB SDK, ondersteunde functies, probleemoplossing en bekende problemen. Zie het leesmij-bestand voor spring data voor Azure Cosmos DB SDK voor meer informatie over de onderstaande concepten en codevoorbeelden.

Versieondersteuningsbeleid

Ondersteuning voor Spring Boot-versie

Dit project ondersteunt meerdere Spring Boot-versies. Zie Spring Boot-ondersteuningsbeleid voor meer informatie. Maven-gebruikers kunnen overnemen van het spring-boot-starter-parent project om een sectie voor afhankelijkheidsbeheer te verkrijgen om Spring de versies voor afhankelijkheden te laten beheren. Zie Ondersteuning voor Spring Boot-versies voor meer informatie.

Ondersteuning voor Spring Data-versies

Dit project ondersteunt verschillende spring-data-commons-versies. Zie Ondersteuning voor Spring Data Version voor meer informatie.

Welke versie van Azure Spring Data Azure Cosmos DB moet worden gebruikt

Azure Spring Data Azure Cosmos DB-bibliotheek ondersteunt meerdere versies van Spring Boot/Spring Cloud. Zie voor meer informatie over welke versie van Azure Spring Data Azure Cosmos DB moet worden gebruikt met Spring Boot/Spring Cloud-versie welke versie van Azure Spring Data voor Azure Cosmos DB moet ik gebruiken?

Aan de slag

Het pakket opnemen

Als u Maven gebruikt, voegt u de volgende afhankelijkheid toe.

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-spring-data-cosmos</artifactId>
    <version>LATEST</version>
</dependency>

Vereisten

  • Java Development Kit (JDK), versie 8 of hoger.
  • Een actief Azure-account. Als u nog geen account hebt, kunt u zich aanmelden voor een gratis account. U kunt ook de Azure Cosmos DB Emulator gebruiken voor ontwikkeling en testen. Aangezien het https-certificaat van de emulator zelfondertekend is, moet u het certificaat importeren in het vertrouwde java-certificaatarchief, zoals hier wordt uitgelegd
  • (Optioneel) SLF4J is een gevel voor logboekregistratie.
  • (Optioneel) SLF4J-binding wordt gebruikt om een specifiek logboekregistratieframework te koppelen aan SLF4J.
  • (Optioneel) Maven

SLF4J is alleen nodig als u van plan bent om logboekregistratie te gebruiken, ook een SLF4J-binding downloadt, waarmee de SLF4J-API wordt gekoppeld aan de implementatie van logboekregistratie van uw keuze. Raadpleeg de SLF4J-gebruikershandleiding voor meer informatie.

De configuratieklasse instellen en aanpassen

Als u de configuratieklasse wilt instellen, moet u deze uitbreiden AbstractCosmosConfiguration. Zie Configuratieklasse instellen voor meer informatie.

U kunt de onderliggende CosmosAsyncClient gegevens die door de Azure Spring Data Azure Cosmos DB SDK worden gebruikt, aanpassen door ze op te geven DirectConnectionConfig of GatewayConnectionConfig beide te bieden CosmosClientBuilder. Ga naar de sectie Configuratie aanpassen voor het volledige voorbeeld.

Entiteit instellen

U kunt een eenvoudige entiteit definiëren als item in Azure Cosmos DB. U kunt entiteiten definiëren door de @Container aantekening toe te voegen en eigenschappen op te geven die betrekking hebben op de container. Zie Een entiteit definiëren voor meer informatie.

Containeraantekening ondersteunt het opgeven van de containernaam, aanvraageenheden (RU's), time-to-live, het maken van containers met doorvoer automatisch schalen, ondersteuning voor geneste partitiesleutels en andere containereigenschappen.

Opslagplaats instellen

Azure Spring Data Azure Cosmos DB ondersteunt ReactiveCrudRepository (asynchrone API's) en CrudRepository (synchronisatie-API's), die de volgende eenvoudige CRUD-functionaliteit bieden:

  • save
  • findAll
  • findOne by ID
  • Deleteall
  • verwijderen op id
  • entiteit verwijderen

U kunt uitbreiden CosmosRepository (voor synchronisatie-API-ondersteuning) of ReactiveCosmosRepository (voor asynchrone API-ondersteuning) om Spring Data-opslagplaatsen in te stellen voor uw toepassing. Zie Opslagplaatsen maken voor meer informatie.

Azure Spring Data Azure Cosmos DB biedt ondersteuning voor het opgeven van geannoteerde query's in de opslagplaatsen met behulp van @Query. Zie QueryAnnotation voor meer informatie: Met behulp van geannoteerde query's in opslagplaatsen.

Spring-gegevensaantekeningen

Spring Data @Id aantekening

Er zijn meerdere manieren om een veld in domeinklasse toe te wijzen aan id. Zie de sectie met aantekeningscode voor spring-gegevens-id's voor meer informatie.

Id automatisch genereren

Azure Spring Data Azure Cosmos DB biedt ondersteuning voor het automatisch genereren van id's met behulp van de @GeneratedValue aantekening. Zie de sectie voor het automatisch genereren van id's voor meer informatie.

SpEL-expressie en aangepaste containernaam

Standaard is de containernaam de klassenaam van de gebruikersdomeinklasse. Als u deze wilt aanpassen, voegt u de @Container(containerName="myCustomContainerName") aantekening toe aan de domeinklasse. Zie de sectie SpEL-expressie en aangepaste containernaam voor meer informatie.

Aangepaste IndexingPolicy

IndexingPolicy Standaard wordt deze ingesteld door de Azure-service. Als u deze wilt aanpassen, voegt u de aantekening @CosmosIndexingPolicy toe aan de domeinklasse. Zie de sectie indexeringsbeleid voor meer informatie.

Beleid voor unieke sleutels

Azure Spring Data Azure Cosmos DB ondersteunt het instellen UniqueKeyPolicy van de container door de aantekening @CosmosUniqueKeyPolicy toe te voegen aan de domeinklasse. Zie de sectie unieke sleutelbeleid voor meer informatie.

Azure Cosmos DB-partitie

Azure-spring-data-cosmos ondersteunt Azure Cosmos DB-partities.

Als u een veld van de domeinklasse wilt opgeven als een partitiesleutelveld, hoeft u alleen aantekeningen te maken met @PartitionKey.

Wanneer u de CRUD-bewerking uitvoert, geeft u de partitiewaarde op.

Zie de sectie Hier voor meer informatie.

Optimistische vergrendeling

Azure-spring-data-cosmos ondersteunt optimistische vergrendeling voor specifieke containers, wat betekent dat upserts/verwijderingen per item mislukken met een uitzondering als het item in de tussentijd wordt gewijzigd door een ander proces. Zie de sectie optimistische vergrendeling voor meer informatie.

Aangepaste Spring Data-query, wisselbaar en sorteren

Azure-spring-data-cosmos ondersteunt aangepaste Spring Data-query's, bijvoorbeeld een zoekbewerking zoals findByAFieldAndBField. Het biedt ook ondersteuning voor Spring Data Pageable, Slice en Sort. Zie de sectie Query, Pageable en Sortering voor meer informatie.

Azure Cosmos DB Java SDK gebruiken via Spring Data Cosmos

Azure-spring-data-cosmos ondersteunt het gebruik van Azure Cosmos DB Java SDK. Gebruikers kunnen bewerkingen ophalen CosmosClient of CosmosAsyncClient doorlopen ApplicationContext en uitvoeren die worden ondersteund door de Azure Cosmos DB Java SDK. Zie de sectie Azure Cosmos Client gebruiken via Spring Data Cosmos Cosmos voor meer informatie.

Spring Data REST

Azure-spring-data-cosmos ondersteunt Spring Data REST. Zie de sectie Azure Spring Data Azure Cosmos DB REST API voor meer informatie.

Controle

Azure-spring-data-cosmos ondersteunt controlevelden voor databaseentiteiten met behulp van standaard annotaties voor spring-data. Zie de sectie Spring Data Azure Cosmos DB-controle voor meer informatie.

Configuratie van meerdere databases

Azure-spring-data-cosmos ondersteunt configuratie van meerdere databases, waaronder 'meerdere databaseaccounts' en 'één account, met meerdere databases'. Zie de sectie multidatabaseconfiguratie voor een volledig codefragment.

Problemen oplossen

Algemeen

Als er een fout optreedt, dient u hier een probleem in.

Als u een nieuwe functie of wijzigingen wilt voorstellen die kunnen worden aangebracht, dient u een probleem op dezelfde manier in als voor een fout.

Clientlogboekregistratie inschakelen

Azure-spring-data-cosmos maakt gebruik van SLF4j als de gevel voor logboekregistratie die ondersteuning biedt voor logboekregistratie in populaire frameworks voor logboekregistratie, zoals log4j en logback. Zie de sectie Logboekregistratie van clients inschakelen voor meer informatie.

Voorbeelden

Zie het voorbeeldproject voor een volledig voorbeeldproject.

Accounts met meerdere databases

Zie het voorbeeldproject voor meerdere databases voor een volledig voorbeeldproject.

Eén account met meerdere databases

Zie het voorbeeldproject Met één account met voorbeeldproject voor meerdere databases voor een volledig voorbeeldproject.

Volgende stappen

Bijdragen

Dit project verwelkomt bijdragen en suggesties. Voor de meeste bijdragen moet u akkoord gaan met een Licentieovereenkomst voor inzenders (CLA) waarin wordt aangegeven dat u het recht hebt om, en daadwerkelijk, ons de rechten te verlenen om uw bijdrage te gebruiken.

Wanneer u een pull-aanvraag indient, bepaalt een CLA-bot automatisch of u een CLA moet opgeven en de pull-aanvraag op de juiste wijze moet inrichten (bijvoorbeeld label, opmerking). Volg gewoon de instructies van de bot. U hoeft dit slechts één keer te doen voor alle opslagplaatsen met behulp van onze CLA.

Dit project onderschrijft de Microsoft Open Source gedragscode. Zie de veelgestelde vragen over gedragscodes voor meer informatie of neem contact op opencode@microsoft.com met andere vragen of opmerkingen.

Impressions