Pregunta

A medida que había escrito en el título, estoy tratando de aprender Spring 3.0 (ya sé Django, pilones y unos marcos MVC más simples) y tratar de utilizar Cassandra como backend para mi aplicación web.

¿Hay ejemplos del mundo real de hacer esto? O tal vez algunos tutoriales? Yo sé de la existencia de la documentación de ambas tecnologías, sin embargo, yo estoy buscando algo "más rápido" para leer y me consiga rodar.

¿Fue útil?

Solución

Soy el autor de Héctor https://github.com/rantav/hector , líder cliente en java para Cassandra así que animo a echar un vistazo a lo que tiene que ofrecer.

Aunque yo personalmente no he estado usando hector con la primavera, lo que sí conseguimos un par de contribuciones que se sumó el apoyo de primavera. Véase, por ejemplo https: //github.com/rantav/hector/blob/master/core/src/test/resources/cassandra-context-test-v2.xml y https://github.com/rantav/hector/blob/master/core /src/test/resources/cassandra-context-test-v2-new.xml

Otros consejos

Si ya está familiarizado con marcos MVC, entonces debería ser consciente de que lo que la base de datos / almacén de datos se utiliza en el backend no debería afectar a su aplicación MVC en su conjunto, o cómo se estructura cosas - que sólo debe afectar a la capa de datos y cómo se recupera datos.

Con Spring MVC, la práctica aceptada es la que representa el modelo de datos como una serie de "dominio del modelo / clases", que son típicamente solo POJOs para almacenar los datos. "Dominio" aquí significa que está relacionado con su dominio del problema; por lo que si usted tiene una aplicación que se ocupa de los clientes de ordenar las cosas que te gustaría tener una clase Customer, una clase Order, etc.

Cada una de las tres capas de la aplicación MVC - los controladores, la capa de lógica de servicio / negocio, y la capa DAO interacciona con estas clases del modelo de dominio. Dado que la capa DAO es responsable de recuperar o actualizar estos datos en el back-end, esto significa que es la capa DAO que necesita saber cómo buscar a su Customer o una clase de Order de Cassandra, la forma de actualizar ciertos campos Customer, etc.

Así que no hay nada especial acerca de cómo se podía construir su aplicación Spring MVC sí cuando se utiliza Cassandra o cualquier otra base de datos "NoSQL". Usted sólo necesita proporcionar diferentes implementaciones de sus clases DAO que puede comunicarse con Cassandra.

Si se está preguntando si hay algunas utilidades de primavera pre-construidos que pueden acceder a Cassandra (o ahorro), entonces la respuesta es no, al menos en cuanto a lo que hay en Spring 3.0. Pero esto debería ser bastante fácil de escribir una vez que tenga el conjunto de interfaz DAO y todas las demás capas de la aplicación en su lugar.

AFAIK no hay tutorial o ejemplo "público" que cubre resorte (3.0) en conjunción con Cassandra. Así que tal vez usted podría mirar en él:)

Yo recomendaría empezar a buscar en la "plantilla" terminología en la primavera (por ejemplo, JdbcTemplate y HibernateTemplate ) y crear algo así como un "CassandraTemplate".

No creo que haya ninguna biblioteca cassandra-primavera disponibles. Sin embargo, se puede usar para crear una instancia de primavera y configurar el grano que se comunica con Cassandra, e inyectar que en cualquier otro frijol tiene que requiere persistencia. De esa manera usted puede dejar que se benefician de la inversión de control y todas las instalaciones de la primavera Application Context ofrece. De esa manera se puede separar el código que es consciente del almacén de datos Cassandra de su lógica de negocio y el uso de primavera.

Por lo tanto, el componente que se comunica con Cassandra será del estereotipo [@Repository][1], por ejemplo, se trata de un repositorio, al igual que un repositorio que habla, por ejemplo, a un origen de datos JDBC.

Estoy involucrado con un proyecto utilizando la primavera con Cassandra llamada Cassandra fácil. Se proporciona una muestra aquí:
https://weblogs.java.net / blog / otaviojava / archivo / 2013/08/25 / gestión cassandra-primavera- de datos

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top