Sin categoría

Spring Data Couchbase avanzado

En el anterior dos hemos visto cómo empezar con Spring Data Couchbase. Ahora es el momento de ser un poco más sofisticado (teniendo en cuenta que sofisticado o avanzado no significa más complicado). Echemos un vistazo a algunas de las grandes cosas que puedes hacer como el almacenamiento en caché, la validación de documentos y la exposición de tu repositorio a través de una API REST.

Almacenamiento en caché

El módulo básico de Spring proporciona un abstracción de caché con soporte para JSR-107(JCache). Veamos un ejemplo. Para asegurarme de que el resultado de un método se almacena en caché, puedo utilizar simplemente la siguiente anotación:

Aquí "myCache" es el nombre de una instancia de caché existente que he configurado. La clave del documento se resolverá utilizando la clave regex "'cache:'+#param", donde #param es el parámetro del método llamado 'param'. Esto asegurará que para el mismo parámetro, el método se ejecute sólo una vez. Cuando se llame en el futuro, el resultado se obtendrá de la caché. Es decir, de Couchbase si he configurado mi aplicación adecuadamente. Para definir una instancia de caché, añade lo siguiente a tu configuración:

y el @HabilitarCaché en su clase de configuración.

Si ya estás usando el sistema de caché de Spring, es realmente fácil reemplazar tu almacenamiento actual con Couchbase. Sólo asegúrate de que el cacheManager que estás usando es una implementación de CouchbaseCacheManager.

Validación de documentos

La validación de campos es una tarea común cuando se trabaja con objetos de negocio. Un ejemplo sería asegurarse de que un campo especificado no es nulo antes de almacenarlo en Couchbase, o que un campo no tiene más de 140 caracteres. Y la buena noticia es que esto es bastante fácil. Puedo usar la validación de Hibernate. Lo primero que hay que hacer es añadir la dependencia necesaria a mi pom:

El siguiente paso es añadir un bean ValidationListener que lanzará una ConstraintViolationException cuando el objeto a almacenar no cumpla el requisito de validación:

@Bean ValidatingCouchbaseEventListener validationEventListener() { return new ValidatingCouchbaseEventListener(validator()); }

Ahora que la configuración obligatoria está hecha, puedo añadir cualquier anotación de validación de Hibernate a mi objeto POJO así:

Ahora cada vez que mi aplicación intenta guardar un objeto donde esta propiedad en particular se establece en null obtendré una ConstraintViolationException.

Por supuesto, hay muchas otras anotaciones aparte de @NotNull. Puede encontrarlas en la sección Documentación de primavera.

Exponer el repositorio con una API REST

Tener un repositorio disponible en tan poco tiempo es genial, pero lo que es aún mejor es el hecho de que puedes exponerlo detrás de una API REST simplemente añadiendo una dependencia. Esto requiere el uso de spring-data-rest-webmvc. Así que lo añado a mis dependencias así:

Y voilà (me siento con derecho a escribir voila, ya sabes, por mi origen francés). Todos los objetos de este repositorio están expuestos HATEOAS estilo:

Simplemente no olvides añadir getters como hice yo si quieres ver algunas propiedades en tus documentos JSON...

Eso es todo para esta serie de entradas de blog sobre Spring Data Couchbase. Por favor comenta y comparte, dinos si quieres más recursos de Spring y Couchbase, dinos si lo usas o quieres usarlo.

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.

1 Comentarios

  1. Matthew Fontana julio 10, 2016 a 11:09 pm

    ¿Tienes el enlace a tu código fuente para este proyecto? Estoy teniendo algunos problemas para conseguir la dependencia Spring-data-rest-webmvc para exponer mi repositorio

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.