Java

O Spring Data Couchbase 2 foi lançado! Guia rápido de introdução com o Spring Initializr

4 MIN DE LEITURA

Boas notícias, pessoal, Spring Data Couchbase 2 foi lançado na semana passada e já está disponível no incrível Spring Initializr. Este site incrível permite que você inicie um projeto Spring/Couchbase muito rapidamente. Basta selecionar as dependências desejadas para o seu projeto, clicar no botão Generate Project e você terá um arquivo compactado contendo um projeto pronto para ser importado. Este assistente também está disponível no Spring Tool Suite.

1/ Vá para https://start.spring.io/

No momento, ele está disponível apenas com o Spring Boot 1.4.0-SNAPSHOT, portanto, certifique-se de começar selecionando a versão correta do Spring Boot.

3/ Selecione Couchbase

4/ Adicione quaisquer outras dependências que você possa precisar para o seu projeto

Gerar o projeto

Agora você tem um arquivo pronto para ser importado no seu editor de preferência. Como estou fazendo coisas com Spring, costumo ficar com o conjunto de ferramentas padrão deles. É basicamente o Eclipse pré-configurado com o conjunto correto de plugins.

Eu mantive o Maven no assistente de geração para poder importá-lo simplesmente como um projeto Maven existente.

Para ativar a configuração padrão, você precisa adicionar o seguinte no seu arquivo application.properties:

spring.data.couchbase.bucket.name=default

Ou você pode criar um Bean @Configuration que estende AbstractCouchbaseConfiguration. Agora estamos prontos para começar. Aqui está um inventário rápido do que a autoconfiguração do Spring Boot Couchbase oferece.

Propriedades

Você pode definir várias propriedades para configurar seu acesso ao Couchbase, aqui estão os padrões:

# o nome do bucket ao qual se conectar; é obrigatório habilitar a configuração automática
spring.data.couchbase.bucket.name=default
# a senha do bucket ao qual se conectar
spring.data.couchbase.bucket.password=
# endereço dos nós do cluster Couchbase
spring.data.couchbase.bootstrap-hosts=127.0.0.1
# Criação automática de índices com base apenas em anotações (@ViewIndexed, @N1qlPrimaryIndexed, @N1qlSecondaryIndexed)
spring.data.couchbase.auto-index=false
# Nível padrão de consistência (read-your-own-writes|eventually-consistent|strongly-consistent|update-after)
spring.data.couchbase.consistency=read-your-own-writes
  • read-your-own-writes é stale=false e ScanConsistency=statement_plus
  • forte consistência é stale=false e ScanConsistency=request_plus
  • update-after é stale=update-after e ScanConsistency=not_bounded
  • eventually-consistent é stale=true e ScanConsistency=not_bounded

Nível obsoleto

Se stale=true estiver configurado, o Couchbase não atualizará a view, mesmo que ela esteja desatualizada. O benefício disso é uma latência de consulta melhorada. Se stale=update_after estiver configurado, o Couchbase atualizará a view após o retorno do resultado desatualizado. Se stale=false estiver configurado, o Couchbase atualizará a view e retornará os resultados mais atualizados.

Nível de Consistência de Varredura

não limitado

Este é o padrão (para solicitações de instrução única). Nenhum vetor de carimbo de data/hora é usado no escaneamento de índice. Este também é o modo mais rápido, pois evitamos o custo de obtenção do vetor e também evitamos qualquer espera para que o índice alcance o vetor.

solicitar_mais

Isso implementa consistência forte por requisição. Antes de processar a requisição, um vetor atual é obtido. O vetor é usado como um limite inferior para as instruções na requisição. Se houver instruções DML na requisição, o RYOW também é aplicado dentro da requisição.

declaração_mais

Isso implementa consistência forte por instrução. Antes de processar cada instrução, um vetor atual é obtido e usado como um limite inferior para essa instrução.

Anotação de índice

Aqui está um exemplo de repositório com automático criação de índice. Quando o bean do repositório é inicializado, nós garantimos que o índice definido pelas anotações exista e, caso contrário, o criamos.

@N1qlPrimaryIndexed
@ViewIndexed(designDoc = "customer")
@N1qlSecondaryIndexed(indexName = "customerSecondaryIndex")
public interface CustomerRepository extends CouchbasePagingAndSortingRepository {}

O índice deve ser usado apenas para desenvolvimento. Aconselhamos desativar a geração automática de índices em produção e certificar-se de criar o índice correto nos nós corretos durante o processo de implantação.

VisualizarIndexado

Este anotação permite definir o nome do documento de design e o nome da View, bem como uma função de map e reduce personalizada.

N1qlPrimaryIndexed

Este anotação certifica-se de que o bucket associado ao repositório atual terá um índice primário N1QL.

N1qlSecondaryIndexed

Este anotação garante que um índice secundário exista no tipo da sua Entidade.

Grãos Disponíveis

Se você habilitou a autoconfiguração, terá acesso a vários Beans. Aqui está uma lista dos mais úteis:

  • CouchbaseTemplate couchbaseTemplate
    • Concede a você acesso à API de baixo nível do Spring Data Couchbase
  • ValidatingCouchbaseEventListener validationEventListener
    • Validador de entidades dependentes do javax.validation. Quando registrado como um componente Spring, ele é invocado automaticamente antes que as entidades sejam salvas no banco de dados.
  • CustomConversions customConversions
    • Usado para capturar conversões de tipos JSON personalizadas.
  • Bucket couchbaseClient
    • Acesso direto ao Bucket configurado

Conclusão

Isso deve ter fornecido uma boa visão geral do que está disponível ao iniciar um novo projeto com o spring-boot-starter-data-couchbase. Para mais detalhes sobre o Spring Data Couchbase 2, consulte o documentação ou confira este blog regularmente para mais conteúdos legais sobre Spring/Couchbase.

Compartilhe este artigo

Autor

Laurent é um metaleiro CDF que mora em Paris. Ele escreve código principalmente em Java e texto estruturado em AsciiDoc, e frequentemente fala sobre dados, programação reativa e outras coisas cheias de jargões. Ele também é um ex-Developer Advocate da Clever Cloud e da Nuxeo, onde dedicou seu tempo e sua expertise para ajudar essas comunidades a crescerem maiores e mais fortes. Agora, ele lidera a área de Developer Relations na Couchbase.

Deixe um comentário

Leave database sprawl in the past

Every stack addition means another bill, and more to manage. Estimate how you could save in 2 minutes.