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 AbstractCosmosConfiguration
uitbreiden. 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 CosmosClientBuilder
aan 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
- Meer informatie over Azure Spring Data Azure Cosmos DB.
- Meer informatie over Azure Cosmos DB Service
- Zie de Voorbeelden van Azure Spring Data Azure Cosmos DB
- Bekijk de Spring MVC met Azure Cosmos DB-sample
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.