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 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 irá guiá-lo pelos conceitos do Azure Spring Data Azure Cosmos DB SDK, recursos suportados, solução de problemas e problemas conhecidos. Para obter mais informações sobre os conceitos e exemplos de código abaixo, consulte o readme do Spring Data for Azure Cosmos DB SDK.
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 usuários do Maven podem herdar do projeto spring-boot-starter-parent
para obter uma seção de gerenciamento de dependência para permitir que o Spring gerencie 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 versões spring-data-commons. Para obter mais informações, consulte Spring Data Version Support.
Qual versão do Azure Spring Data Azure Cosmos DB usar
Azure Spring Data A biblioteca do Azure Cosmos DB suporta 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 a versão Spring Boot / Spring Cloud, consulte Qual versão do Azure Spring Data para Azure Cosmos DB devo usar?.
Começar
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 certificado https do emulador é autoassinado, você precisa importar seu certificado para o armazenamento de certificados confiável java, explicado 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
SLF4J só é necessário se estiver a planear usar registo, também descarregar uma ligação para SLF4J, que irá ligar a API SLF4J com a implementação de registo da sua escolha. 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, você precisa estender AbstractCosmosConfiguration
. Para obter mais informações, consulte Classe de Configuração de Instalação.
Você pode personalizar os CosmosAsyncClient
subjacentes fornecidos pelo SDK do Azure Spring Data Azure Cosmos DB, disponibilizando DirectConnectionConfig
ou GatewayConnectionConfig
, ou ambos, para CosmosClientBuilder
. Para obter uma amostra completa, visite a seção de configuração de personalização .
Configuração da 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 suporta a especificação do nome do contêiner, unidades de solicitação (RUs), tempo de vida criação de contêineres comde taxa de transferência de dimensionamento automático, de suporte de chave de partição aninhada e outras propriedades de contêiner.
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
- encontrarTodos
- findOne por ID
- 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 O 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 de dados do Spring
de anotação do Spring Data @Id
Há várias maneiras de mapear um campo na classe de domínio para id
. 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 O 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 ID de geração automática.
Expressão SpEL e nome do contêiner personalizado
Por padrão, o nome do contêiner será o nome 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 na seção e o nome do contêiner personalizado na seção.
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 Política de indexação .
Política chave única
Azure Spring Data Azure Cosmos DB dá suporte à configuração UniqueKeyPolicy
no contêiner ao adicionar 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 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 aqui a seção Teste de .
Bloqueio otimista
Azure-spring-data-cosmos
suporta Bloqueio Otimista para contêineres específicos, o que significa que as operações de atualização/inserção (upserts) e exclusão por item falharão com uma exceção caso o item seja modificado por outro processo nesse meio tempo. 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, por exemplo, uma operação de localização, como findByAFieldAndBField
. Ele também suporta Spring Data Pageable, Slice e Sort. Para obter mais informações, consulte a consulta , paginável e a seção de classificação.
Usando o SDK Java do Azure Cosmos DB por meio do Spring Data Cosmos
Azure-spring-data-cosmos
suporta o uso de Azure Cosmos DB Java SDK
. Os usuários podem obter CosmosClient
ou CosmosAsyncClient
bean através do ApplicationContext
e executar quaisquer 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 campos de auditoria em entidades de bases 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
suporta 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 trecho de código completo, consulte a seção 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 forma que faria para 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 obter um projeto de exemplo completo, consulte o projeto de exemplo Multi-database .
Conta única com várias bases de dados
Para obter um projeto de exemplo completo, consulte o Conta única com projeto de exemplo de vários bancos de dados.
Próximos passos
- Leia mais sobre os dados de primavera do Azure Azure Cosmos DB.
- Leia mais sobre o Azure Cosmos DB Service
- Veja os exemplos de Azure Spring Data para Azure Cosmos DB
- Veja o exemplo do Spring MVC com o Azure Cosmos DB
Contribuição
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 você envia uma solicitação pull, um CLA-bot determinará automaticamente se você precisa fornecer um CLA e decorar o 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 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.