Buenas prácticas y tutoriales

Vaadin/Couchbase CRUD Ejemplo

La semana pasada mientras estaba en JFokus conocí a Matti Tahvonentrabaja en Vaadin. Llevan años proponiendo un marco web de código abierto para aplicaciones ricas de Internet en Java y lo hacen realmente bien. Personalmente estoy muy contento de escribir una aplicación web moderna completa sólo en Java.

Hemos tardado 10 minutos en tener un ejemplo de Vaadin CRUD funcionando almacenando objetos en Couchbase. El resultado está disponible en Github. Desde entonces también he migrado una muestra basada en JPA también disponible aquí. Puedes ver el poco trabajo que requiere y lo fácil que es pasar de JPA a Couchbase con la herramienta dif.

Spring Data Couchbase con Vaadin

Generar el proyecto

El primer paso al iniciar un proyecto Spring es ir a Inicialización de muelles. Aquí puedes seleccionar la versión y las dependencias que quieres para tu proyecto. Selecciona Spring Boot versión 1.4.0(SNAPSHOT) y añade Vaadin y Couchbase como dependencias.

Ahora puede generar el proyecto e importarlo como un proyecto Maven en el editor de su elección.

Persona básica Entidad CRUD

Este ejemplo CRUD va a almacenar Cliente objetos. Un cliente tiene un id, a firstName y un apellido. Además, el apellido no debe ser nulo. Para expresar esto como una entidad, basta con añadir el atributo @Documento en la clase, @Id en el campo que se utilizará como clave de Couchbase, generar getters y setters y ya está. Para expresar las restricciones not null, podemos simplemente usar las anotaciones de validación de Java @NotNull. Para asegurarnos de que se recoge al escribir la entidad, tendremos que declarar un bean validador.

Depósito de clientes

Una vez definida una entidad, hay que crear el repositorio asociado. Cree una interfaz que extienda la interfaz CouchbasePagingAndSortingRepository. Este repositorio gestiona Cliente con una cadena como clave.

He redefinido el findAll para devolver un Lista en lugar de un Iterable ya que funciona mejor con las estructuras de Vaadin. El findAll está respaldado por una Vista. Para que sus vistas se definan automáticamente, puede añadir el método @VerIndexado anotación. También debe asegurarse de que ha establecido el parámetro spring.data.couchbase.auto-index a true en su aplicación.propiedades archivo.

También he añadido un findByLastName(String apellido) método. En función del nombre del método, se generará automáticamente la consulta N1QL adecuada. Pero para ejecutar la consulta N1Ql, se necesita un índice primario. Que también se puede generar automáticamente a través de la @N1QLPrimaryIndexed anotación.

Configuración

Estoy utilizando spring-boot-starter-data-couchbase. Proporciona autoconfiguración. Esta autoconfiguración se puede activar configurando el parámetro spring.couchbase.bootstrap-hosts propiedad. Hasta ahora mi aplicación.propiedades se ve así:

 

 

Crear un cliente

Ahora tengo todo lo que necesito para guardar un Cliente Entity en Couchbase. Podemos probar esto fácilmente con un CommandLineRunner:

Verás que también he añadido el bean validador mencionado anteriormente. Utiliza un ValidatingCouchbaseEventListener declarado automáticamente por la configuración automática de Spring Boot.

Uso de Vaadin para la interfaz de usuario

El backend está listo, podemos empezar a pensar en el frontend. Quiero una aplicación básica CRUD que mostrará una lista de clientes, la posibilidad de añadir, editar o eliminar elementos de la lista. Aquí's una captura de pantalla:

Para construir esto empezamos creando un formulario que permita al usuario introducir un nombre y un apellido. Crea una clase que extienda un Formulario abstracto de Cliente. Esta clase no está disponible en Vaadin Core, por lo que tenemos que añadir Viritin.

Viritin es una librería de mejora del lado del servidor para Vaadin. Corrige algunos defectos en el núcleo del framework y proporciona una API más fluida e inteligente para los componentes existentes. También proporciona varias mejoras importantes para la vinculación de bases de datos y proporciona componentes completamente nuevos hechos con la composición del lado del servidor (no se necesita widgetset).

Y sí proporciona la Formulario abstracto que está perfectamente integrada con Spring Data y los validadores. Necesitamos editar la clase firstName y apellido campos del Cliente por lo que definimos dos campos de texto llamados firstName y apellido. Deben tener el mismo nombre que su campo Cliente. Lo que también es bueno de este componente es que recogerá la anotación de validación en su entidad. De esta manera se obtiene la validación automática en el cliente y en el servidor. Y soporta anotaciones más complejas que el@NotNull como Tamaño o @Patrón.

Ahora que el formulario está listo podemos construir la UI completa mostrando la rejilla de la tabla. Este será el componente principal de su aplicación Vaadin, la página web principal. Dado que la Depósito de clientes y el ClienteEditor son beans de Spring, podemos inyectarlos directamente en el constructor. Si usted está familiarizado con la escritura de Java UI, el código comentado a continuación debe ser sencillo.

Y entonces usted está todo listo, todo lo que tienes que hacer es ejecutar esto como una aplicación Java Spring Boot habitual. Así que fue bastante fácil ¿eh?

Comparte este artículo
Recibe actualizaciones del blog de Couchbase en tu bandeja de entrada
Este campo es obligatorio.

Autor

Publicado por Laurent Doguin

Laurent es un metalero empollón que vive en París. Principalmente escribe código en Java y texto estructurado en AsciiDoc, y a menudo habla sobre datos, programación reactiva y otras cosas de moda. También fue Developer Advocate de Clever Cloud y Nuxeo, donde dedicó su tiempo y experiencia a ayudar a esas comunidades a crecer y fortalecerse. Ahora dirige las relaciones con los desarrolladores en Couchbase.

Deja un comentario

¿Listo para empezar con Couchbase Capella?

Empezar a construir

Consulte nuestro portal para desarrolladores para explorar NoSQL, buscar recursos y empezar con tutoriales.

Utilizar Capella gratis

Ponte manos a la obra con Couchbase en unos pocos clics. Capella DBaaS es la forma más fácil y rápida de empezar.

Póngase en contacto

¿Quieres saber más sobre las ofertas de Couchbase? Permítanos ayudarle.