Guia de desenvolvimento do Azure Cosmos DB

O Azure Spring Data para Azure Cosmos DB fornece suporte a Spring Data para Azure Cosmos DB para NoSQL. Azure Cosmos DB é um serviço de base de dados distribuído globalmente que os programadores podem usar para trabalhar com dados utilizando várias APIs padrão, como SQL, MongoDB, Cassandra, Graph e Table.

Este guia explica os conceitos do Azure Spring Data Azure Cosmos DB SDK, funcionalidades suportadas, resolução de problemas e problemas conhecidos. Para mais informações sobre estes conceitos e exemplos de código, consulte o readme do SDK Spring Data for Azure Cosmos DB.

Política de suporte de versão

Suporte à versão Spring Boot

Este projeto suporta várias versões do Spring Boot. Para obter mais informações, consulte Política de suporte do Spring Boot. Os utilizadores do Maven podem herdar do projeto spring-boot-starter-parent para obter uma secção de gestão de dependências que permite ao Spring gerir as versões das dependências. Para obter mais informações, consulte Spring Boot Version Support.

Suporte à versão Spring Data

Este projeto suporta diferentes spring-data-commons versões. Para obter mais informações, consulte Spring Data Version Support.

Qual versão do Azure Spring Data Azure Cosmos DB usar

A biblioteca Azure Spring Data Azure Cosmos DB suporta múltiplas versões do Spring Boot e do Spring Cloud. Para mais informações sobre qual versão do Azure Spring Data Azure Cosmos DB usar com o Spring Boot e o Spring Cloud, veja Qual versão do Azure Spring Data para Azure Cosmos DB devo usar?

Introdução

Inclua o pacote

Se você estiver usando o Maven, adicione a seguinte dependência.

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

Pré-requisitos

  • Java Development Kit (JDK), versão 8 ou superior.
  • Uma conta ativa do Azure. Se você não tiver uma, você pode se inscrever para uma conta gratuita . Como alternativa, você pode usar o do Emulador do Azure Cosmos DB para desenvolvimento e teste. Como o emulador usa um certificado HTTPS auto-assinado, precisa de importar o seu certificado para a loja de certificados de confiança Java, explicada aqui.
  • (Opcional) SLF4J é uma interface de registo.
  • (Opcional) A vinculação SLF4J é usada para associar um framework de registo específico ao SLF4J.
  • (Opcional) Maven

Só necessitas do SLF4J se planeares usar registo. Descarregue também um binding do SLF4J, que liga a API SLF4J à implementação de registo de eventos que preferir. Para obter mais informações, consulte o manual de utilizador do SLF4J.

Instalar e personalizar a classe de configuração

Para configurar a classe de configuração, estenda AbstractCosmosConfiguration. Para obter mais informações, consulte Classe de Configuração de Instalação.

Pode personalizar o conteúdo subjacente CosmosAsyncClient usado pelo Azure Spring Data Azure Cosmos DB SDK, fornecendo DirectConnectionConfig, GatewayConnectionConfig, ou ambos, e atribuindo-os a CosmosClientBuilder. Para uma amostra completa, visite a secção de personalização de configuração.

Configuração da entidade

Pode definir uma entidade simples como um item no Azure Cosmos DB. Defina entidades adicionando a @Container anotação e especificando propriedades relacionadas com o contentor. Para obter mais informações, consulte Definir uma entidade.

A anotação do contentor suporta a especificação do nome do contentor, unidades de pedido (RUs), tempo de vida, criação de contentores com débito autoescalável, suporte a chaves de partição aninhadas e outras propriedades do contentor.

Configuração do repositório

Azure Spring Data O Azure Cosmos DB suporta ReactiveCrudRepository (APIs assíncronas) e CrudRepository (APIs de sincronização), que fornecem a seguinte funcionalidade CRUD básica:

  • Gravar
  • localizarTudo
  • encontrarUmPorID
  • excluirTodos
  • excluir por ID
  • excluir entidade

Você pode estender CosmosRepository (para suporte a API de sincronização) ou ReactiveCosmosRepository (para suporte a API assíncrona) para configurar repositórios de dados do Spring para seu aplicativo. Para obter mais informações, consulte Criar repositórios.

Azure Spring Data Azure Cosmos DB suporta especificar consultas anotadas nos repositórios usando @Query. Para obter mais informações, consulte QueryAnnotation : Usando consultas anotadas em repositórios.

Anotações de dados do Spring

Anotação @Id do Spring Data

Pode mapear um campo numa classe de domínio para id de várias maneiras. Para mais informações, consulte a secção do código de anotação de ID do Spring Data.

Geração automática de ID

Azure Spring Data Azure Cosmos DB suporta a geração automática de IDs através da @GeneratedValue anotação. Para obter mais informações, consulte a seção ID de geração automática.

Expressão SpEL e nome do contêiner personalizado

Por defeito, o nome do contentor é o nome da classe do domínio de utilizador. Para personalizar o nome do contentor, adicione a @Container(containerName="myCustomContainerName") anotação à classe de domínio. Para obter mais informações, consulte a expressão SpEL na seção e o nome do contêiner personalizado na seção.

Política de indexação personalizada

Por defeito, o serviço Azure define o IndexingPolicy. Para personalizar o IndexingPolicy, adicione a @CosmosIndexingPolicy anotação à classe de domínio. Para obter mais informações, consulte a seção Política de indexação .

Política chave única

O Azure Spring Data Azure Cosmos DB permite definir o UniqueKeyPolicy no contentor, adicionando a anotação @CosmosUniqueKeyPolicy à classe de domínio. Para obter mais informações, consulte a seção de política de chave exclusiva .

Partição do Azure Cosmos DB

Azure-spring-data-cosmos suporta partições Azure Cosmos DB .

Para especificar um campo da classe de domínio como campo chave de partição, anote-o com @PartitionKey.

Quando realiza uma operação CRUD, especifique o valor da sua partição.

Para obter mais informações, consulte aqui a seção Teste de .

Bloqueio otimista

Azure-spring-data-cosmos Suporta bloqueio otimista para contentores específicos. Este suporte significa que upserts e eliminações por item falham, com exceção se outro processo modificar o item. Para mais informações, consulte a seção de bloqueio otimista .

Consulta customizada do Spring Data, paginável e ordenável

Azure-spring-data-cosmos suporta consultas personalizadas Spring Data, como uma operação de busca como findByAFieldAndBField. Também suporta Spring Data Pageable, Slice e Sort. Para mais informações, consulte a secção de consulta, paginação e ordenação.

Usando o SDK Java do Azure Cosmos DB por meio do Spring Data Cosmos

Azure-spring-data-cosmos suporta o uso do Azure Cosmos DB Java SDK. Pode obter um CosmosClient ou CosmosAsyncClient bean através de ApplicationContext e executar todas as operações suportadas pelo SDK Java do Azure Cosmos DB. Para obter mais informações, consulte a seção usando o Azure Cosmos Client por meio do Spring Data Cosmos.

Spring Data REST

Azure-spring-data-cosmos suporta Spring Data REST. Para obter mais informações, consulte a seção Azure Spring Data Azure Cosmos DB REST API.

Auditoria

Azure-spring-data-cosmos Suporta a auditoria de campos em entidades de base de dados utilizando anotações padrão de dados Spring. Para obter mais informações, consulte a seção de auditoria do Spring Data Azure Cosmos DB .

Configuração de vários bancos de dados

Azure-spring-data-cosmos Suporta a configuração de múltiplas bases de dados, incluindo múltiplas contas de base de dados e uma única conta com múltiplas bases de dados. Para obter um trecho de código completo, consulte a seção Configuração de vários bancos de dados .

Solução de problemas

Geral

Se encontrares um bug, apresenta uma reclamação aqui.

Para sugerir uma nova funcionalidade ou alterações, apresenta um problema da mesma forma que farias por um bug.

Habilitar o registo do cliente

Azure-spring-data-cosmos usa SLF4j como a interface de registo que suporta o registo em frameworks de log populares, como log4j e logback. Para obter mais informações, consulte a seção ativar o registo do cliente.

Exemplos

Para obter um projeto de exemplo completo, consulte o projeto de exemplo .

Contas com vários bancos de dados

Para um projeto de exemplo completo, consulte o projeto de exemplo de múltiplas bases de dados.

Conta única com várias bases de dados

Para um projeto de exemplo completo, veja o projeto de exemplo de conta única com múltiplas bases de dados.

Próximos passos

Contribuindo

Este projeto acolhe contribuições e sugestões. A maioria das contribuições exige que concorde com um Contrato de Licença de Colaborador (CLA) declarando que tem o direito de, e nos concede realmente, os direitos de usar a sua contribuição.

Quando se envia um pedido de pull, um CLA-bot determinará automaticamente se é necessário fornecer um CLA e decorar o PR adequadamente - por exemplo, etiqueta, comentário. Basta seguir as instruções fornecidas pelo bot. Você só precisará fazer isso uma vez em todos os repositórios usando nosso CLA.

Este projeto adotou o Microsoft Open Source Code of Conduct. Para obter mais informações, consulte as Perguntas frequentes sobre o Código de Conduta ou entre em contato com opencode@microsoft.com com outras perguntas ou comentários.