2010-03-18 8 views
15

Come avevo scritto nel titolo, sto cercando di imparare Spring 3.0 (conosco già Django, Pylons e alcuni semplici framework MVC) e provo a usare Cassandra come back-end per la mia applicazione web.Esistono esempi/tutorial sull'utilizzo di Spring 3.0 con Cassandra come back-end?

Esistono esempi concreti di ciò? O forse qualche tutorial? So dell'esistenza della documentazione di entrambe le tecnologie, tuttavia sto cercando qualcosa di "più veloce" da leggere e farmi girare.

+0

Così si sta imparando Spring MVC, non molla, che ha un focus più ampio –

+0

@ mirror303: dispiace per la misconfusion, ma sì, mi sto concentrando il mio tempo per imparare Spring MVC, non l'intera pila di tecnologie Spring. – zeroDivisible

+1

in futuro tieni d'occhio il progetto Spring Data. Hanno pianificato il supporto per cassandra e HBase. http://www.springsource.org/spring-data –

risposta

11

Sono l'autore di Hector https://github.com/rantav/hector, il principale client java per cassandra quindi ti incoraggerei a dare un'occhiata a ciò che ha da offrire.

Mentre personalmente non ho usato Hector con la primavera, abbiamo ricevuto alcuni contributi che hanno aggiunto il supporto di primavera. Si veda ad esempio https://github.com/rantav/hector/blob/master/core/src/test/resources/cassandra-context-test-v2.xml e https://github.com/rantav/hector/blob/master/core/src/test/resources/cassandra-context-test-v2-new.xml

2

AFAIK non esiste un tutorial o un esempio "pubblico" relativo a Spring (3.0) in combinazione con Cassandra. Così forse si poteva guardare dentro :)

Vorrei raccomandare a iniziare a guardare la terminologia "modello" in primavera (per esempio JDBCTemplate e HibernateTemplate) e creare una sorta di "CassandraTemplate".

2

Se si ha già familiarità con i framework MVC, è necessario tenere presente che il database/datastore utilizzato nel back-end non dovrebbe influire sull'applicazione MVC nel suo complesso o su come strutturare le cose, ma solo sui propri dati livello e come recupera i dati.

Con Spring MVC, la prassi accettata è quella di rappresentare il modello dati come una serie di "modelli/classi di dominio", che in genere sono solo POJO per conservare i dati. "Dominio" qui significa che è correlato al tuo dominio problematico; quindi se hai un'applicazione che si occupa dei clienti che ordinano le cose vorresti avere una classe Customer, una classe Order, ecc.

Ciascuno dei tre livelli dell'applicazione MVC: i controller, la logica servizio/business livello e il livello DAO interagisce con queste classi di modelli di dominio. Dal momento che lo strato DAO è responsabile del recupero o l'aggiornamento di questi dati nel backend, questo significa che è lo strato DAO che ha bisogno di sapere come prendere il vostro Customer o Order classe da Cassandra, come aggiornare alcuni Customer campi, ecc

Quindi non c'è niente di speciale su come si costruisce la propria applicazione Spring MVC stessa quando si utilizza Cassandra o qualsiasi altro database "NoSQL". Dovrai solo fornire diverse implementazioni delle tue classi DAO che possono comunicare con Cassandra.

Se stai chiedendo se ci sono delle utility Spring preinstallate che possono accedere a Cassandra (o Thrift), la risposta è no, almeno per quanto riguarda la versione 3.0 di Spring. Ma dovrebbe essere abbastanza semplice scrivere una volta che hai impostato l'interfaccia DAO e tutti gli altri livelli dell'applicazione.

+0

matt b, grazie per una così grande spiegazione delle cose. Cercherò di dare più informazioni e spero che tu abbia ragione sul fatto che le cose diventeranno chiare non appena avrò tutti gli strati sul posto. – zeroDivisible

1

Non penso che sia disponibile una libreria cassandra. Tuttavia, è possibile utilizzare Spring per creare un'istanza e configurare il bean che parla con Cassandra e iniettarlo in qualsiasi altro bean che richiede persistenza. In questo modo puoi beneficiare di Inversion Of Control e di tutte le funzionalità offerte da Spring ApplicationContext. In questo modo è possibile separare il codice che è a conoscenza del deposito dati cassandra dalla logica aziendale e utilizzare molla.

Quindi, il componente che parla con Cassandra sarà dello stereotipo [@Repository][1], ad es. è un repository, proprio come un repository che parla, ad esempio, di un'origine dati JDBC.

Problemi correlati