Amostra de CRUD do Vaadin/Couchbase

Na semana passada, enquanto eu estava no JFokus, conheci Matti Tahvonen, ele trabalha na Vaadin. Eles vêm propondo uma estrutura da Web de código aberto para aplicativos avançados de Internet em Java há anos e fazem isso muito bem. Pessoalmente, fico muito feliz em escrever um aplicativo moderno da Web completo apenas em Java.

Levamos 10 minutos para ter uma amostra funcional do Vaadin CRUD armazenando objetos no Couchbase. O resultado está disponível em Github. Desde então, também migrei uma amostra baseada em JPA, também disponível aqui. Você pode ver como é necessário muito pouco trabalho e como é fácil passar do JPA para o Couchbase com o diferença.

Spring Data Couchbase e Vaadin

Gerar o projeto

A primeira etapa ao iniciar um projeto do Spring é ir para Inicialização do Spring. Aqui você pode selecionar a versão e as dependências que deseja para o seu projeto. Selecione Spring Boot versão 1.4.0 (SNAPSHOT) e adicione Vaadin e Couchbase como dependências.

Agora você pode gerar o projeto e importá-lo como um projeto Maven no editor de sua preferência.

CRUD básico de entidade de pessoa

Esse exemplo de CRUD vai armazenar Cliente objetos. Um cliente tem um id, a firstName e um lastName. Além disso, o sobrenome não pode ser nulo. Para expressar isso como uma entidade, você só precisa adicionar a variável @Documento na classe, @Id no campo a ser usado como chave do Couchbase, gere getters e setters e pronto. Para expressar as restrições não nulas, podemos simplesmente usar as anotações de validação Java @NotNull. Para garantir que isso seja detectado ao escrever a entidade, precisaremos declarar um bean validador.

O repositório de clientes

Depois de definir uma entidade, você precisa criar o repositório associado. Crie uma interface que estenda a interface CouchbasePagingAndSortingRepository. Esse repositório lida com Cliente com uma String como chave.

Eu redefini o findAll para retornar um método Lista em vez de um Iterável pois ele funciona melhor com as estruturas Vaadin. O findAll é apoiado por uma visualização. Para que suas exibições sejam definidas automaticamente, você pode adicionar a opção @ViewIndexed anotação. Você também precisa se certificar de que definiu a anotação spring.data.couchbase.auto-index para true em sua propriedade application.properties arquivo.

Também adicionei um findByLastName(String lastName) method. Com base no nome do método, a consulta N1QL apropriada será gerada automaticamente. Mas para executar a consulta N1Ql, você precisa de um índice primário. Que também pode ser gerado automaticamente por meio do método @N1QLPrimaryIndexed anotação.

Configuração

Estou usando o spring spring-boot-starter-data-couchbase. Ele oferece autoconfiguração. Essa autoconfiguração pode ser ativada definindo o parâmetro spring.couchbase.bootstrap-hosts propriedade. Até o momento, minha application.properties se parece com isso:

 

 

Criar um cliente

Agora tenho tudo o que preciso para salvar um Cliente Entidade no Couchbase. Podemos tentar isso facilmente com um CommandLineRunner:

Você perceberá que também adicionei o bean validador mencionado anteriormente. Ele usa um ValidatingCouchbaseEventListener declarado automaticamente pela configuração automática do Spring Boot.

Usando o Vaadin para a interface do usuário

O backend está pronto, podemos começar a pensar no frontend. Quero um aplicativo CRUD básico que mostre uma lista de clientes, com a capacidade de adicionar, editar ou remover elementos da lista. Aqui está uma captura de tela:

Para construir isso, começamos criando um formulário que permite ao usuário inserir um nome e um sobrenome. Crie uma classe que estenda uma classe Formulário abstrato de Cliente. Essa classe não está disponível no Vaadin Core, portanto, precisamos adicionar Viritina.

O Viritin é uma biblioteca de aprimoramento do lado do servidor para o Vaadin. Ela corrige alguns padrões ruins na estrutura principal e fornece uma API mais fluente e inteligente para os componentes existentes. Também oferece vários aprimoramentos importantes para a vinculação de dados e fornece componentes completamente novos feitos com a composição do lado do servidor (não é necessário widgetset).

E sim, ele fornece o Formulário abstrato que é perfeitamente integrada ao Spring Data e aos validadores. Precisamos editar a classe firstName e lastName campos do Cliente portanto, definimos dois campos de texto chamados firstName e lastName. Eles precisam ter o mesmo nome do campo Customer. O que também é excelente nesse componente é o fato de que ele selecionará a anotação de validação em sua entidade. Dessa forma, você obtém validação automática no cliente e no servidor. E ele é compatível com anotações mais complexas do que todas as outras.@NotNull como @Tamanho ou @Padrão.

Agora que o formulário está pronto, podemos criar a interface do usuário completa exibindo a grade da tabela. Esse será o principal componente de seu aplicativo Vaadin, a página principal da Web. Como o CustomerRepository e o Editor de clientes são Spring beans, podemos injetá-los diretamente no construtor. Se você estiver familiarizado com a escrita da interface do usuário Java, o código comentado abaixo deve ser simples.

E então está tudo pronto, tudo o que você precisa fazer é executar isso como um aplicativo Java Spring Boot normal. Então, foi bem fácil, não foi?

Compartilhe este artigo
Receba atualizações do blog do Couchbase em sua caixa de entrada
Esse campo é obrigatório.

Autor

Postado por Laurent Doguin

Laurent é um nerd metaleiro que mora em Paris. Em sua maior parte, ele escreve código em Java e texto estruturado em AsciiDoc, e frequentemente fala sobre dados, programação reativa e outras coisas que estão na moda. Ele também foi Developer Advocate do Clever Cloud e do Nuxeo, onde dedicou seu tempo e experiência para ajudar essas comunidades a crescerem e se fortalecerem. Atualmente, ele dirige as Relações com Desenvolvedores na Couchbase.

Deixe um comentário

Pronto para começar a usar o Couchbase Capella?

Iniciar a construção

Confira nosso portal do desenvolvedor para explorar o NoSQL, procurar recursos e começar a usar os tutoriais.

Use o Capella gratuitamente

Comece a trabalhar com o Couchbase em apenas alguns cliques. O Capella DBaaS é a maneira mais fácil e rápida de começar.

Entre em contato

Deseja saber mais sobre as ofertas do Couchbase? Deixe-nos ajudar.