Boas notícias para todos, Dados do Spring Couchbase 2 foi lançado na semana passada e agora está disponível no incrível Spring Initializr. Esse 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 contendo um projeto pronto para ser importado. Esse assistente também está disponível na seção Suíte de ferramentas Spring.
1/ Ir para http://start.spring.io/
2/ No momento, ele só está disponível com o Spring Boot 1.4.0-SNAPSHOT, portanto, certifique-se de começar selecionando a versão correta do SpringBoot.
3/ Selecione Couchbase
4/ Adicione quaisquer outras dependências necessárias para seu projeto
5/ Gerar o projeto
Agora você tem um arquivo pronto para ser importado no editor de sua preferência. Como estou fazendo coisas do Spring, costumo usar o conjunto de ferramentas padrão. Basicamente, é o Eclipse pré-configurado com o conjunto certo de plug-ins.
6/ Eu me limitei ao Maven no assistente de geração para que eu possa simplesmente importá-lo como um projeto maven existente.
Para ativar a configuração padrão, você precisa adicionar o seguinte no arquivo application.properties:
1 2 |
mola.dados.couchbase.balde.nome=padrão |
Ou você pode criar um Bean @Configuration que estenda o AbstractCouchbaseConfiguration. Agora estamos prontos para começar. Aqui está um rápido inventário do que a configuração automática do Spring Boot Couchbase oferece a você.
Propriedades
Você pode definir várias propriedades para configurar seu acesso ao Couchbase; aqui estão os padrões:
1 2 3 4 5 6 7 8 9 10 11 |
# o nome do bucket ao qual se conectar, é obrigatório habilitar a configuração automática mola.dados.couchbase.balde.nome=padrão # a senha do bucket ao qual se conectar mola.dados.couchbase.balde.senha= # endereço dos nós do cluster do Couchbase mola.dados.couchbase.bootstrap-anfitriões=127.0.0.1 # Criação automática de índices com base apenas em anotações (@ViewIndexed, @N1qlPrimaryIndexed, @N1qlSecondaryIndexed) mola.dados.couchbase.automático-índice=falso # Nível padrão de consistência (read-your-own-writes|eventually-consistent|strongly-consistent|update-after) mola.dados.couchbase.consistência=ler-seu-próprio-escreve |
- read-your-own-writes is stale=false e ScanConsistency=statement_plus
- fortemente consistente é 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 for definido, o Couchbase não atualizará a exibição mesmo que ela esteja obsoleta. O benefício disso é uma latência de consulta aprimorada. Se stale=update_after for definido, o Couchbase atualizará a exibição depois que o resultado obsoleto for retornado. Se stale=false for definido, o Couchbase atualizará a visualização e retornará os resultados mais atualizados.
Nível de consistência da varredura
not_bounded
Esse é o padrão (para solicitações de instrução única). Nenhum vetor de registro de data e hora é usado na varredura do índice. Esse também é o modo mais rápido, porque evitamos o custo de obtenção do vetor e também evitamos qualquer espera para que o índice alcance o vetor.
request_plus
Isso implementa uma consistência forte por solicitação. Antes de processar a solicitação, um vetor atual é obtido. O vetor é usado como um limite inferior para as instruções na solicitação. Se houver instruções DML na solicitação, o RYOW também será aplicado na solicitação.
statement_plus
Isso implementa uma 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 criação de índices. Quando o bean do repositório é inicializado, verificamos se o índice definido pelas anotações existe e, se não existir, o criamos.
1 2 3 4 5 |
@N1qlPrimaryIndexed @ViewIndexed(designDoc = "cliente") @N1qlSecondaryIndexed(indexName = "customerSecondaryIndex") público interface CustomerRepository se estende CouchbasePagingAndSortingRepository<Cliente, Cordas> {} |
O índice deve ser usado somente para desenvolvimento. Aconselhamos desativar a geração automática de índices na produção e certificar-se de criar o índice certo nos nós certos durante o processo de implementação.
ViewIndexed
Isso anotação permite que você defina o nome do documento de design e o nome da visualização, bem como um mapa personalizado e uma função de redução.
N1qlPrimaryIndexed
Isso anotação garante que o bucket associado ao repositório atual terá um índice primário N1QL.
N1qlSecondaryIndexed
Isso anotação certifique-se de que existe um índice secundário no tipo de sua entidade.
Feijões disponíveis
Se tiver ativado a configuração automática, você terá acesso a vários Beans. Aqui está uma lista dos mais úteis:
- CouchbaseTemplate couchbaseTemplate
- Dá acesso à API de baixo nível do Spring Data Couchbase
- ValidatingCouchbaseEventListener validationEventListener
- Validador de entidades dependentes de javax.validation. Quando é registrado como componente Spring, ele é invocado automaticamente antes de as entidades serem salvas no banco de dados.
- CustomConversions customConversions
- Usado para capturar conversões personalizadas do tipo JSON.
- Balde couchbaseClient
- Acesso direto ao Bucket configurado
Conclusão
Isso deve ter lhe dado uma boa visão geral do que está disponível ao iniciar um novo projeto com o spring-boot-starter-data-couchbase. Para obter mais detalhes sobre o Spring Data Couchbase 2, consulte a seção documentação ou visite este blog regularmente para obter mais informações sobre o Spring/Couchbase.