Condividi tramite


Guida allo sviluppo di Azure Cosmos DB

Azure Spring Data per Azure Cosmos DB fornisce il supporto di Spring Data per Azure Cosmos DB per NoSQL. azure Cosmos DB è un servizio di database distribuito a livello globale che consente agli sviluppatori di lavorare con dati usando varie API standard, ad esempio SQL, MongoDB, Cassandra, Graph e Table.

Questa guida illustra i concetti di Azure Spring Data Azure Cosmos DB SDK, funzionalità supportate, risoluzione dei problemi e problemi noti. Per ulteriori informazioni sui concetti e sugli esempi di codice seguenti, vedere il file README di Spring Data per Azure Cosmos DB SDK.

Politica di supporto delle versioni

Supporto della versione di Spring Boot

Questo progetto supporta più versioni di Spring Boot. Per altre informazioni, vedere Spring Boot Support Policy. Gli utenti Maven possono ereditare dal progetto spring-boot-starter-parent per ottenere una sezione di gestione delle dipendenze per consentire a Spring di gestire le versioni per le dipendenze. Per altre informazioni, vedere Spring Boot Version Support.

Supporto della versione di Spring Data

Questo progetto supporta diverse versioni di spring-data-commons. Per altre informazioni, vedere Spring Data Version Support.

Quale versione di Azure Spring Data azure Cosmos DB usare

La libreria Azure Cosmos DB di Azure Spring Data supporta più versioni di Spring Boot/Spring Cloud. Per altre informazioni su quale versione di Azure Spring Data Azure Cosmos DB usare con Spring Boot/Spring Cloud, vedere quale versione di Azure Spring Data per Azure Cosmos DB è consigliabile usare?.

Inizia

Includere il pacchetto

Se si usa Maven, aggiungere la dipendenza seguente.

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

Prerequisiti

  • Java Development Kit (JDK), versione 8 o successiva.
  • Un account Azure attivo. Se non ne hai uno, puoi iscriverti per un account gratuito . In alternativa, è possibile usare l' emulatore di Azure Cosmos DB per lo sviluppo e il test. Poiché il certificato https dell'emulatore è autofirmato, è necessario importarne il certificato nell'archivio certificati attendibili Java, spiegato qui
  • (Facoltativo) SLF4J è una facciata di registrazione.
  • (Facoltativo) binding SLF4J viene usato per associare un framework di registrazione specifico a SLF4J.
  • (Facoltativo) Maven

SLF4J è necessario solo se si prevede di usare la registrazione, scaricare anche un binding SLF4J, che collegerà l'API SLF4J all'implementazione di registrazione preferita. Per altre informazioni, vedere il manuale dell'utente SLF4J.

Configurare e personalizzare la classe di configurazione

Per configurare la classe di configurazione, è necessario estendere AbstractCosmosConfiguration. Per altre informazioni, vedere Setup Configuration Class.

È possibile personalizzare le CosmosAsyncClient sottostanti usate da Azure Spring Data Azure Cosmos DB SDK fornendo DirectConnectionConfig o GatewayConnectionConfig o entrambe e fornendole a CosmosClientBuilder. Per un esempio completo, visitare la sezione di personalizzazione della configurazione .

Configurazione delle entità

È possibile definire un'entità semplice come elemento in Azure Cosmos DB. È possibile definire le entità aggiungendo l'annotazione @Container e specificando le proprietà correlate al contenitore. Per altre informazioni, vedere Definire un'entità.

L'annotazione del contenitore supporta la specifica del nome del contenitore, unità richiesta (UR), il tempo necessario per la creazione di contenitori con velocità effettiva a scalabilità automatica, chiave di partizione annidata supportae altre proprietà del contenitore.

Configurazione del repository

Azure Spring Data Azure Cosmos DB supporta ReactiveCrudRepository (API asincrone) e CrudRepository (API di sincronizzazione), che forniscono le funzionalità CRUD di base seguenti:

  • salvare
  • findAll
  • ricerca per ID
  • eliminaTutto
  • elimina per ID
  • eliminare un'entità

È possibile estendere CosmosRepository (per il supporto dell'API di sincronizzazione) o ReactiveCosmosRepository (per il supporto dell'API asincrona) per configurare i repository Spring Data per l'applicazione. Per ulteriori informazioni, vedere Creazione di repository.

Azure Spring Data Azure Cosmos DB supporta l'uso di query annotate nei repository usando @Query. Per altre informazioni, vedere QueryAnnotation: Utilizzo di query annotate nei repository.

Annotazioni Spring Data

annotazione spring data @Id

Esistono diversi modi per eseguire il mapping di un campo nella classe di dominio a id. Per ulteriori informazioni, consultare la sezione annotazione di ID dei dati Spring codice.

Generazione automatica id

Azure Spring Data Azure Cosmos DB supporta la generazione automatica di ID usando l'annotazione @GeneratedValue. Per altre informazioni, vedere la sezione generazione automatica di ID .

Espressione SpEL e nome del contenitore personalizzato

Per impostazione predefinita, il nome del contenitore sarà il nome della classe di dominio utente. Per personalizzare, aggiungere l'annotazione @Container(containerName="myCustomContainerName") alla classe di dominio. Per ulteriori informazioni, vedere la sezione sull'espressione SpEL e sul nome del contenitore personalizzato.

IndexingPolicy personalizzato

Per impostazione predefinita, IndexingPolicy verrà impostato dal servizio di Azure. Per personalizzare, aggiungere l'annotazione @CosmosIndexingPolicy alla classe di dominio. Per altre informazioni, vedere la sezione criteri di indicizzazione.

Politica della chiave univoca

Azure Spring Data Azure Cosmos DB supporta l'impostazione UniqueKeyPolicy nel contenitore aggiungendo l'annotazione @CosmosUniqueKeyPolicy alla classe di dominio. Per ulteriori informazioni, consultare la sezione sui criteri di chiave univoca .

Partizione di Azure Cosmos DB

Azure-spring-data-cosmos supporta partizioni di Azure Cosmos DB.

Per specificare un campo della classe di dominio come campo della chiave di partizione, è sufficiente annotarlo con @PartitionKey.

Quando si esegue un'operazione CRUD, specificare il valore della partizione.

Per ulteriori informazioni, consultare la sezione del test qui.

Blocco ottimistico

Azure-spring-data-cosmos supporta il blocco ottimistico per contenitori specifici, il che significa che upserts/deletes by item avrà esito negativo con un'eccezione nel caso in cui l'elemento venga modificato da un altro processo nel frattempo. Per ulteriori informazioni, consultare la sezione di blocco ottimistico .

Query personalizzata Spring Data, paginabile e ordinabile

Azure-spring-data-cosmos supporta query personalizzate Spring Data, ad esempio un'operazione di ricerca come findByAFieldAndBField. Supporta anche Spring Data Pageable, Slice e Ordina. Per ulteriori informazioni, vedere la query e la sezione di ordinamento e ricerca.

Uso di Java SDK di Azure Cosmos DB tramite Spring Data Cosmos

Azure-spring-data-cosmos supporta l'uso di Azure Cosmos DB Java SDK. Gli utenti possono ottenere CosmosClient o CosmosAsyncClient bean tramite ApplicationContext ed eseguire qualsiasi operazione supportata da Azure Cosmos DB Java SDK. Per altre informazioni, vedere la sezione using Azure Cosmos Client through Spring Data Cosmos (Uso del client Azure Cosmos tramite Spring Data Cosmos).

Spring Data REST

Azure-spring-data-cosmos supporta Spring Data REST. Per ulteriori informazioni, vedere la sezione API REST di Azure Spring Data Cosmos DB.

Controllo

Azure-spring-data-cosmos supporta il controllo dei campi nelle entità di database usando annotazioni spring-data standard. Per ulteriori informazioni, consultare la sezione verifica di Spring Data per Azure Cosmos DB.

Configurazione multi-database

Azure-spring-data-cosmos supporta la configurazione multi-database, tra cui "più account di database" e "account singolo, con più database". Per un frammento di codice completo, vedere la sezione configurazione multi database.

Risoluzione dei problemi

Generale

Se si verifica un bug, inviare un problema qui.

Per suggerire una nuova funzionalità o modifiche che potrebbero essere apportate, inviare un problema nello stesso modo in cui si farebbe per un bug.

Abilitare la registrazione client

Azure-spring-data-cosmos usa SLF4j come facciata di registrazione che supporta l'accesso ai framework di registrazione più diffusi, ad esempio log4j e logback. Per altre informazioni, vedere la sezione abilitazione della registrazione client.

Esempi

Per un progetto di esempio completo, vedere il progetto di esempio .

Account multi-database

Per un progetto di esempio completo, vedere il progetto di esempio multi-database .

Account singolo con più database

Per un progetto di esempio completo, vedere l'account singolo con il progetto di esempio multi-database.

Passaggi successivi

Contribuire

Questo progetto accoglie contributi e suggerimenti. La maggior parte dei contributi richiede l'accettazione di un contratto di licenza collaboratore (CLA) dichiarare di avere il diritto di concedere il proprio contributo e, in realtà, concederci i diritti per l'uso del contributo.

Quando si invia una pull request, un CLA-bot determinerà automaticamente se è necessario fornire un CLA e decorare la pull request in modo appropriato, ad esempio etichettare, commentare. Seguire semplicemente le istruzioni fornite dal bot. Dovrai eseguire questa operazione una sola volta in tutti i repository usando il nostro contratto di licenza.

Questo progetto ha adottato il codice di comportamento Open Source di Microsoft. Per altre informazioni, vedere domande frequenti sul codice di comportamento o contattare opencode@microsoft.com con eventuali altre domande o commenti.

impressioni