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 https://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 |
spring.data.couchbase.bucket.name=default |
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 |
# the name of the bucket to connect to, it's mandatory to enable the auto-config spring.data.couchbase.bucket.name=default # the password of the bucket to connect to spring.data.couchbase.bucket.password= # adress of the Couchbase Cluster nodes spring.data.couchbase.bootstrap-hosts=127.0.0.1 # Automatic index creation based only annotations (@ViewIndexed, @N1qlPrimaryIndexed, @N1qlSecondaryIndexed) spring.data.couchbase.auto-index=false # Default level of consistency (read-your-own-writes|eventually-consistent|strongly-consistent|update-after) spring.data.couchbase.consistency=read-your-own-writes |
- 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 = "customer") @N1qlSecondaryIndexed(indexName = "customerSecondaryIndex") public interface CustomerRepository extends CouchbasePagingAndSortingRepository<Customer, String> {} |
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.