Guia de desenvolvimento do Azure Cosmos DB
O Azure Spring Data para Azure Cosmos DB oferece suporte ao Spring Data para o Azure Cosmos DB for NoSQL. do Azure Cosmos DB é um serviço de banco de dados distribuído globalmente que permite que os desenvolvedores trabalhem com dados usando várias APIs padrão, como SQL, MongoDB, Cassandra, Graph e Table.
Este guia orientará você pelos conceitos do SDK do Azure Spring Data Azure Cosmos DB, recursos com suporte, solução de problemas e problemas conhecidos. Para obter mais informações sobre conceitos e exemplos de código abaixo, consulte o leiame do SDK do Spring Data for Azure Cosmos DB.
Política de suporte à versão
Suporte à versão do Spring Boot
Este projeto dá suporte a várias versões do Spring Boot. Para obter mais informações, consulte a Política de Suporte do Spring Boot . Os usuários do Maven podem herdar do projeto spring-boot-starter-parent
para obter uma seção de gerenciamento de dependências para permitir que o Spring gerencie as versões para dependências. Para obter mais informações, consulte Suporte à versão do Spring Boot.
Suporte à versão do Spring Data
Este projeto dá suporte a diferentes versões spring-data-commons. Para obter mais informações, consulte Suporte à versão do Spring Data.
Qual versão do Azure Spring Data Azure Cosmos DB usar
A biblioteca do Azure Spring Data Azure Cosmos DB dá suporte a várias versões do Spring Boot/Spring Cloud. Para obter mais informações sobre qual versão do Azure Spring Data Azure Cosmos DB usar com o Spring Boot/versão do Spring Cloud, consulte Qual versão do Azure Spring Data para Azure Cosmos DB devo usar?.
Começar
Incluir o pacote
Se você estiver usando o Maven, adicione a dependência a seguir.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-spring-data-cosmos</artifactId>
<version>LATEST</version>
</dependency>
Pré-requisitos
- do JDK (Java Development Kit), versão 8 ou superior.
- Uma conta ativa do Azure. Se você não tiver um, poderá se inscrever em uma conta gratuita . Como alternativa, você pode usar o do Emulador do Azure Cosmos DB para desenvolvimento e teste. Como o certificado https do emulador é autoassinado, você precisa importar seu certificado para o repositório de certificados confiáveis do Java, explicado aqui
- (Opcional) SLF4J é uma fachada de registro em log.
- (Opcional) A associação SLF4J é usada para associar uma estrutura de registro em log específica ao SLF4J.
- (Opcional) Maven
O SLF4J só será necessário se você planejar usar o registro em log. Baixe também uma associação SLF4J que vinculará a API SLF4J à implementação do registro em log de sua escolha. Para mais informações, consulte o manual do usuário SLF4J .
Configurar e personalizar a classe de configuração
Para configurar a classe de configuração, você precisa estender AbstractCosmosConfiguration
. Para obter mais informações, consulte a classe de configuração de instalação .
Você pode personalizar os CosmosAsyncClient
subjacentes que são usados pelo SDK do Azure Spring Data Azure Cosmos DB, fornecendo DirectConnectionConfig
, GatewayConnectionConfig
, ou ambos, e então entregá-los para CosmosClientBuilder
. Para obter um exemplo completo, visite a seção de configuração de personalização .
Configuração de entidade
Você pode definir uma entidade simples como item no Azure Cosmos DB. Você pode definir entidades adicionando a anotação @Container
e especificando propriedades relacionadas ao contêiner. Para obter mais informações, consulte Definir uma entidade.
A anotação de contêiner dá suporte à especificação do nome do contêiner, unidades de solicitação (RUs), tempo de vida útil e criação de contêineres com escala automática de taxa de transferência, suporte para chaves de partição aninhadas e outras propriedades de contêiner.
Configuração do repositório
O Azure Spring Data Azure Cosmos DB dá suporte a ReactiveCrudRepository
(APIs assíncronas) e CrudRepository
(APIs de sincronização), que fornecem a seguinte funcionalidade básica do CRUD:
- Salvar
- findAll
- findOne por ID
- excluirTudo
- excluir por ID
- excluir entidade
Você pode estender CosmosRepository
(para o suporte à API de sincronização) ou ReactiveCosmosRepository
(para suporte à API assíncrona) para configurar repositórios do Spring Data para seu aplicativo. Para obter mais informações, consulte Criar repositórios.
O Azure Spring Data Azure Cosmos DB dá suporte à especificação de consultas anotadas nos repositórios usando @Query
. Para obter mais informações, consulte QueryAnnotation: Usando consultas anotadas em repositórios.
Anotações do Spring Data
Anotação de @Id do Spring Data
Há várias maneiras de mapear um campo na classe de domínio para id
. Para obter mais informações, consulte a seção de código de anotação de ID do Spring Data.
Geração automática de ID
O Azure Spring Data Azure Cosmos DB dá suporte à geração automática de IDs usando a anotação @GeneratedValue. Para obter mais informações, consulte a seção de geração automática de ID .
Expressão SpEL e nome do contêiner personalizado
Por padrão, o nome do contêiner será o nome de classe da classe de domínio do usuário. Para personalizar, adicione a anotação @Container(containerName="myCustomContainerName")
à classe de domínio. Para obter mais informações, consulte a expressão SpEL e a seção de nome de contêiner personalizado.
Política de Indexação Personalizada
Por padrão, IndexingPolicy
será definido pelo serviço do Azure. Para personalizar, adicione a anotação @CosmosIndexingPolicy
à classe de domínio. Para obter mais informações, consulte a seção de política de indexação .
Política de chaves exclusiva
O Azure Spring Data Azure Cosmos DB dá suporte à definição de UniqueKeyPolicy
no contêiner, adicionando a anotação @CosmosUniqueKeyPolicy
à classe de domínio. Para obter mais informações, consulte a seção política de chaves exclusiva.
Partição do Azure Cosmos DB
Azure-spring-data-cosmos
dá suporte a partições do Azure Cosmos DB.
Para especificar um campo da classe de domínio para ser um campo de chave de partição, basta anotá-lo com @PartitionKey
.
Ao executar a operação CRUD, especifique o valor da partição.
Para obter mais informações, consulte a seção teste aqui.
Bloqueio Otimista
Azure-spring-data-cosmos
dá suporte ao Bloqueio Otimista para contêineres específicos, o que significa que upserts/exclusões por item falharão com uma exceção caso o item seja modificado por outro processo nesse meio tempo. Para obter mais informações, consulte a seção de bloqueio otimista.
Consulta personalizada do Spring Data, paginável e classificação
Azure-spring-data-cosmos
dá suporte a consultas personalizadas do Spring Data, por exemplo, uma operação de localização, como findByAFieldAndBField
. Ele também oferece suporte a Pageable, Slice e Sort do Spring Data. Para obter mais informações, consulte seção de classificação e paginação de consulta.
Usando o SDK do Java do Azure Cosmos DB por meio do Spring Data Cosmos
Azure-spring-data-cosmos
dá suporte ao uso de Azure Cosmos DB Java SDK
. Os usuários podem obter CosmosClient
ou CosmosAsyncClient
bean por meio de ApplicationContext
e executar todas as operações compatíveis com o SDK java do Azure Cosmos DB. Para obter mais informações, consulte o usando o Cliente do Azure Cosmos por meio da seção Spring Data Cosmos.
Spring Data REST
Azure-spring-data-cosmos
dá suporte ao REST do Spring Data. Para obter mais informações, consulte a seção API REST do Azure Spring Data Azure Cosmos DB.
Auditoria
Azure-spring-data-cosmos
dá suporte à auditoria de campos em entidades de bancos de dados usando anotações padrão do Spring Data. 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
dá suporte à configuração de vários bancos de dados, incluindo "várias contas de banco de dados" e "conta única, com vários bancos de dados". Para obter um snippet de código completo, consulte a seção de configuração de vários bancos de dados.
Solução de Problemas
Geral
Se você encontrar algum bug, registre um problema aqui.
Para sugerir um novo recurso ou alterações que possam ser feitas, registre um problema da mesma maneira que você faria para um bug.
Habilitar o Registro em log do Cliente
Azure-spring-data-cosmos
usa SLF4j como a fachada de registro em log que dá suporte ao registro em log em estruturas de registros em log populares como o log4j e logback. Para obter mais informações, consulte a seção habilitar o registro em log do cliente.
Exemplos
Para obter um projeto de exemplo completo, consulte o projeto de exemplo .
Contas de vários bancos de dados
Para obter um projeto de exemplo completo, consulte o projeto de exemplo de vários bancos de dados.
Conta única com vários bancos de dados
Para um projeto de exemplo completo, consulte o projeto de exemplo "Conta única com banco de dados múltiplo" .
Próximas etapas
- Leia mais sobre o Azure Spring Data e o Azure Cosmos DB.
- Leia mais sobre o Serviço do Azure Cosmos DB
- Consulte os exemplos do Azure Spring Data Azure Cosmos DB
- Consulte o Spring MVC com o exemplo do Azure Cosmos DB
Participante
Este projeto recebe contribuições e sugestões. A maioria das contribuições exige que você concorde com um CLA (Contrato de Licença do Colaborador) declarando que você tem o direito de nos conceder e de fato concede, os direitos de usar sua contribuição.
Quando você envia uma solicitação de pull, um bot do CLA determina automaticamente se você precisa fornecer um CLA e preencher a PR adequadamente - por exemplo, rótulo, comentário. Basta seguir as instruções fornecidas pelo bot. Você só precisará fazer isso uma vez em todos os repositórios que estejam usando nosso CLA.
Este projeto adotou o Código de Conduta de Software Livre da Microsoft. Para obter mais informações, consulte as perguntas frequentes sobre o Código de Conduta ou entre em contato com opencode@microsoft.com com quaisquer outras perguntas ou comentários.