Partager via


Guide de développement Azure Cosmos DB

Azure Spring Data for Azure Cosmos DB fournit le support de Spring Data pour Azure Cosmos DB pour NoSQL. azure Cosmos DB est un service de base de données distribué à l’échelle mondiale qui permet aux développeurs d’utiliser des données à l’aide de diverses API standard, telles que SQL, MongoDB, Cassandra, Graph et Table.

Ce guide vous guide tout au long des concepts du Kit de développement logiciel (SDK) Azure Spring Data Azure Cosmos DB, des fonctionnalités prises en charge, des dépannages et des problèmes connus. Pour plus d'informations sur les concepts ci-dessous et des exemples de code, consultez le readme de Spring Data for Azure Cosmos DB SDK.

Politique de support des versions

Prise en charge des versions de Spring Boot

Ce projet prend en charge plusieurs versions de Spring Boot. Pour plus d'informations, consultez la politique de support Spring Boot . Les utilisateurs Maven peuvent hériter du projet spring-boot-starter-parent pour obtenir une section de gestion des dépendances pour permettre à Spring de gérer les versions des dépendances. Pour plus d'informations, consultez Spring Boot Version Support.

Support de version de Spring Data

Ce projet prend en charge différentes versions spring-data-commons. Pour plus d'informations, reportez-vous à la section Prise en charge des versions de Spring Data.

Quelle version d’Azure Spring Data Azure Cosmos DB utiliser

La bibliothèque Azure Spring Data Azure Cosmos DB prend en charge plusieurs versions de Spring Boot /Spring Cloud. Pour plus d’informations sur la version d’Azure Spring Data Azure Cosmos DB à utiliser avec Spring Boot /Spring Cloud version, consultez Quelle version d’Azure Spring Data pour Azure Cosmos DB dois-je utiliser ?.

Démarrer

Inclure le package

Si vous utilisez Maven, ajoutez la dépendance suivante.

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

Conditions préalables

  • kit de développement Java (JDK), version 8 ou ultérieure.
  • Un compte Azure actif. Si vous n’en avez pas, vous pouvez vous inscrire à un compte gratuit . Vous pouvez également utiliser l’émulateur Azure Cosmos DB pour le développement et le test. Comme le certificat https de l’émulateur est auto-signé, vous devez importer son certificat dans le magasin de certificats approuvés Java, expliqué ici
  • (Facultatif) SLF4J est une façade de journalisation.
  • (Facultatif) La liaison SLF4J est utilisée pour associer un framework de journalisation spécifique à SLF4J.
  • (Facultatif) Maven

SLF4J est nécessaire uniquement si vous envisagez d’utiliser la journalisation, téléchargez également une liaison SLF4J, qui liera l’API SLF4J avec l’implémentation de journalisation de votre choix. Pour plus d’informations, consultez le manuel de l’utilisateur SLF4J .

Configurer et personnaliser la classe de configuration

Pour configurer la classe de configuration, vous devez étendre AbstractCosmosConfiguration. Pour plus d'informations, reportez-vous à la section Classe de configuration.

Vous pouvez personnaliser les CosmosAsyncClient sous-jacentes utilisées par le Kit de développement logiciel (SDK) Azure Spring Data Azure Cosmos DB en fournissant DirectConnectionConfig ou GatewayConnectionConfig ou les deux, et les fournir à CosmosClientBuilder. Pour obtenir l’exemple complet, consultez la section de personnalisation de la configuration .

Configuration d’entité

Vous pouvez définir une entité simple en tant qu’élément dans Azure Cosmos DB. Vous pouvez définir des entités en ajoutant l’annotation @Container et en spécifiant les propriétés associées au conteneur. Pour plus d’informations, consultez Définir une entité.

L'annotation de conteneur permet de spécifier le nom du conteneur, les unités de requête (RU), la durée de vie, la création de conteneurs avec un débit autoscale, la prise en charge des clés de partition imbriquées et d'autres propriétés du conteneur.

Configuration du référentiel

Azure Spring Data Azure Cosmos DB prend en charge les ReactiveCrudRepository (API asynchrones) et les CrudRepository (API de synchronisation), qui fournissent les fonctionnalités CRUD de base suivantes :

  • sauvegarder
  • findAll
  • findOne par identifiant
  • deleteAll
  • supprimer par ID
  • supprimer une entité

Vous pouvez étendre CosmosRepository (pour la prise en charge de l’API de synchronisation) ou ReactiveCosmosRepository (pour la prise en charge de l’API asynchrone) pour configurer des référentiels Spring Data pour votre application. Pour plus d’informations, consultez Créer des référentiels.

Azure Spring Data Azure Cosmos DB prend en charge la spécification de requêtes annotées dans les référentiels à l’aide de @Query. Pour plus d’informations, consultez QueryAnnotation : utilisation de requêtes annotées dans des référentiels.

Annotations de données Spring

Annotation Spring Data @Id

Il existe plusieurs façons de mapper un champ dans la classe de domaine à id. Pour plus d'informations, consultez la section relative au code d'annotation de l'ID des données de printemps.

Génération automatique d’ID

Azure Spring Data Azure Cosmos DB prend en charge la génération automatique d’ID à l’aide de l’annotation @GeneratedValue. Pour plus d’informations, consultez la section sur la génération automatique d’ID .

Expression SpEL et nom de conteneur personnalisé

Par défaut, le nom du conteneur est le nom de classe de la classe de domaine utilisateur. Pour personnaliser, ajoutez l’annotation @Container(containerName="myCustomContainerName") à la classe de domaine. Pour plus d’informations, consultez la section d'expressions SpEL et de noms de conteneurs personnalisés et.

Politique d'indexation personnalisée

Par défaut, IndexingPolicy sera défini par le service Azure. Pour personnaliser, ajoutez l’annotation @CosmosIndexingPolicy à la classe de domaine. Pour plus d’informations, consultez la section de stratégie d’indexation .

Stratégie de clé unique

Azure Spring Data Azure Cosmos DB prend en charge la définition de UniqueKeyPolicy sur le conteneur en ajoutant l’annotation @CosmosUniqueKeyPolicy à la classe de domaine. Pour plus d'informations, reportez-vous à la section relative à la stratégie de clé unique.

Partition Azure Cosmos DB

Azure-spring-data-cosmos prend en charge les partitions Azure Cosmos DB.

Pour spécifier un champ de la classe de domaine pour qu’il s’agit d’un champ de clé de partition, il vous suffit de l’annoter avec @PartitionKey.

Lorsque vous effectuez une opération CRUD, spécifiez votre valeur de partition.

Pour plus d'informations, consultez la section Test ici.

Verrouillage optimiste

Azure-spring-data-cosmos prend en charge le verrouillage optimiste pour des conteneurs spécifiques, ce qui signifie que les upserts/suppressions par élément échouent avec une exception quand l’élément est modifié par un autre processus entre-temps. Pour plus d'informations, reportez-vous à la section relative au verrouillage optimiste.

Requête personnalisée Spring Data, pagination et tri

Azure-spring-data-cosmos prend en charge les requêtes personnalisées de Spring Data, par exemple, une opération de recherche telle que findByAFieldAndBField. Il prend également en charge Spring Data Pageable, Slice et Sort. Pour plus d'informations, consultez la section sur les requêtes, la pagination et le tri.

Utilisation du Kit de développement logiciel (SDK) Java Azure Cosmos DB via Spring Data Cosmos

Azure-spring-data-cosmos prend en charge l'utilisation de Azure Cosmos DB Java SDK. Les utilisateurs peuvent obtenir CosmosClient ou CosmosAsyncClient bean via ApplicationContext et exécuter toutes les opérations prises en charge par le Kit de développement logiciel (SDK) Java Azure Cosmos DB. Pour plus d'informations, consultez la section à l'aide de Spring Data Cosmos via le client Azure Cosmos.

Spring Data REST

Azure-spring-data-cosmos prend en charge Spring Data REST. Pour plus d’informations, consultez la section de l'API REST Azure Spring Data Azure Cosmos DB.

Audit

Azure-spring-data-cosmos prend en charge l’audit des champs sur les entités de base de données à l’aide des annotations standards de Spring Data. Pour plus d’informations, consultez la section d’audit Spring Data Azure Cosmos DB.

Configuration de plusieurs bases de données

Azure-spring-data-cosmos prend en charge la configuration de plusieurs bases de données, notamment « plusieurs comptes de base de données » et « compte unique, avec plusieurs bases de données ». Pour obtenir un extrait de code complet, consultez la section configuration de plusieurs bases de données.

Dépannage

Généralités

Si vous rencontrez un bogue, créez un problème ici.

Pour suggérer une nouvelle fonctionnalité ou des modifications qui peuvent être apportées, créez un problème de la même façon que vous le feriez pour un bogue.

Activer la journalisation du client

Azure-spring-data-cosmos utilise SLF4j comme façade de journalisation prenant en charge l'intégration avec des frameworks populaires tels que log4j et logback. Pour plus d'informations, reportez-vous à la section Activer le journal du client.

Exemples

Pour obtenir un exemple de projet complet, consultez l’exemple de projet .

Comptes à plusieurs bases de données

Pour obtenir un exemple de projet complet, consultez l’exemple de projet multi-base de données.

Compte unique avec plusieurs bases de données

Pour obtenir un exemple de projet complet, consultez le compte unique avec l’exemple de projet multi-base de données.

Étapes suivantes

Contribution

Ce projet accueille les contributions et suggestions. La plupart des contributions vous obligent à accepter un contrat de licence contributeur (CLA) déclarant que vous avez le droit de, et que, de fait, vous nous accordez les droits d’utiliser votre contribution.

Lorsque vous envoyez une demande de tirage (pull request), un bot CLA détermine automatiquement si vous devez fournir un contrat CLA et agrémenter la demande de tirage de façon appropriée (par exemple, avec une étiquette ou un commentaire). Suivez simplement les instructions fournies par le bot. Vous ne devez effectuer cette opération qu’une seule fois sur tous les dépôts utilisant notre contrat CLA.

Ce projet a adopté le code de conduite Microsoft Open Source. Pour plus d’informations, consultez la faq code de conduite ou contactez opencode@microsoft.com avec d’autres questions ou commentaires.