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
- Altre informazioni su Azure Spring Data e Azure Cosmos DB.
- Altre informazioni sul servizio Azure Cosmos DB
- Vedere gli esempi di Azure Spring Data per Azure Cosmos DB
- Visualizzare l'esempio di Spring MVC con Azure Cosmos DB
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.