Delen via


Ontwikkelaarshandleiding voor Azure Cosmos DB

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 de leesmij-Spring Data voor Azure Cosmos DB SDK-leesmij-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-ondersteuningsbeleidvoor 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 Spring Boot-versieondersteuningvoor meer informatie.

Ondersteuning voor Spring Data-versies

Dit project ondersteunt verschillende spring-data-commons-versies. Zie Spring Data Version Supportvoor 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. Voor meer informatie over welke versie van Azure Spring Data voor Azure Cosmos DB u moet gebruiken met de versie van Spring Boot / Spring Cloud, zie 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>

Voorwaarden

  • 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, hier 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. Zie voor meer informatie de SLF4J gebruikershandleiding.

De configuratieklasse instellen en aanpassen

Als u de configuratieklasse wilt instellen, moet u AbstractCosmosConfigurationuitbreiden. Zie Configuratieklasse instellenvoor meer informatie.

U kunt de onderliggende CosmosAsyncClient die worden gebruikt door Azure Spring Data Azure Cosmos DB SDK aanpassen door DirectConnectionConfig, GatewayConnectionConfig of beide te gebruiken en ze aan CosmosClientBuilderaan te bieden. Ga naar configuratiesectie aanpassenvoor een volledig 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ërenvoor meer informatie.

Containeraantekening ondersteunt het opgeven van de containernaam, aanvraageenheden (RUs), verblijfstijd, het aanmaken van containers met automatische schaalvergroting van de doorvoer, ondersteuning van geneste partitioneringssleutelsen 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:

  • opslaan
  • vindAlles
  • vindEén op ID
  • verwijderAlles
  • verwijderen op basis van ID
  • entiteit verwijderen

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

Azure Spring Data Azure Cosmos DB biedt ondersteuning voor het opgeven van geannoteerde query's in de opslagplaatsen met behulp van @Query. Voor meer informatie, zie QueryAnnotation: gebruik van geannoteerde query's in repositories.

Spring-gegevensaantekeningen

Spring Data @Id aantekening

Er zijn meerdere manieren om een veld in domeinklasse toe te wijzen aan id. Raadpleeg sectie van de annotatiecode voor de springgegevens-ID'svoor 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. Voor meer informatie, zie de sectie over het automatisch genereren van ID's .

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 containernaamsectievoor meer informatie.

Aangepast Indexeringsbeleid

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

Beleid voor unieke sleutels

Azure Spring Data Azure Cosmos DB ondersteunt het instellen van UniqueKeyPolicy op de container door de aantekening @CosmosUniqueKeyPolicy toe te voegen aan de domeinklasse. Zie de sectie uniek sleutelbeleidvoor 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.

Voor meer informatie, zie de test hier in sectie.

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 ondertussen wordt gewijzigd door een ander proces. Zie voor meer informatie de sectie , optimistische vergrendeling,.

Aangepaste Spring Data-query, met paginering en sortering

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. Voor meer informatie, zie de query, paginering en sorteerbare sectie.

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 CosmosClient of CosmosAsyncClient bean ophalen via ApplicationContext en alle bewerkingen uitvoeren die worden ondersteund door de Azure Cosmos DB Java SDK. Voor meer informatie, zie de sectie waarin de Azure Cosmos-client via Spring Data Cosmos wordt gebruikt.

Spring Data REST

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

Controle

Azure-spring-data-cosmos ondersteunt controlevelden voor databaseentiteiten met behulp van standaardaantekeningen voor spring-data. Zie de sectie Spring Data Azure Cosmos DB-controlevoor 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 configuratie van meerdere databasesvoor een volledig codefragment.

Probleemoplossing

Algemeen

Als u een bug tegenkomt, kunt u hier een bug rapporteren.

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 façade voor logboekregistratie die ondersteuning biedt voor logboekregistratie in populaire frameworks voor logboekregistratie, zoals log4j en logback. Voor meer informatie, zie de sectie clientlogging inschakelen.

Voorbeelden

Zie het voorbeeldprojectvoor een volledig voorbeeldproject.

Accounts met meerdere databases

Zie het voorbeeldproject met meerdere databasesvoor een volledig voorbeeldproject.

Eén account met meerdere databases

Zie het single-account met een voorbeeldproject voor meerdere databasesvoor 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 verklaard dat u het recht hebt om ons de rechten te verlenen om uw bijdrage te gebruiken.

Wanneer u een pull request indient, bepaalt een CLA-bot automatisch of u een CLA moet opgeven en de pull request passend markeren, bijvoorbeeld met een label of commentaar. Volg gewoon de instructies van de bot. U hoeft dit slechts één keer te doen voor alle repositories met behulp van onze CLA.

Dit project heeft de Microsoft Open Source-gedragscodeaangenomen. Zie de Veelgestelde vragen over gedragscodes of neem contact op met opencode@microsoft.com met andere vragen of opmerkingen voor meer informatie.

indrukken