正如我在标题中所写,我正在尝试学习Spring 3.0(我已经知道Django,Pylons和一些更简单的MVC框架)并尝试使用Cassandra作为我的Web应用程序的后端。
有这样做的真实世界的例子吗?或者也许是一些教程?我知道这两种技术的文档存在,但我正在寻找一些“更快”的东西来阅读并让我滚动。
答案 0 :(得分:11)
我是Hector https://github.com/rantav/hector的作者,他是cassandra的主要Java客户端,因此我建议您查看它提供的内容。
虽然我个人没有使用春天的hector,但我们确实得到了一些增加弹簧支撑的贡献。例如,请参阅https://github.com/rantav/hector/blob/master/core/src/test/resources/cassandra-context-test-v2.xml和https://github.com/rantav/hector/blob/master/core/src/test/resources/cassandra-context-test-v2-new.xml
答案 1 :(得分:2)
AFAIK没有与Cassandra一起提供Spring(3.0)的“公共”教程或示例。 所以也许你可以调查一下:)
我建议开始查看Spring中的“模板”术语(例如JDBCTemplate和HibernateTemplate)并创建类似“CassandraTemplate”的内容。
答案 2 :(得分:2)
如果您已经熟悉MVC框架,那么您应该知道在后端使用哪个数据库/数据存储不应该影响整个MVC应用程序,或者如何构建事物 - 它应该只影响您的数据层以及它如何检索数据。
使用Spring MVC,公认的做法是将数据模型表示为一系列“域模型/类”,它们通常只是用于保存数据的POJO。 “域”在这里意味着它与您的问题域相关;所以如果你有一个应用程序来处理客户订购你想要的Customer
课程,Order
课程等等。
MVC应用程序的三个层中的每一层 - 控制器,服务/业务逻辑层和DAO层都与这些域模型类进行交互。由于DAO层负责在后端检索或更新此数据,这意味着DAO层需要知道如何从Cassandra获取Customer
或Order
类,如何更新某些Customer
字段等
因此,在使用Cassandra或任何其他“NoSQL”数据库时,如何构建Spring MVC应用程序并没有什么特别之处。您只需要提供可以与Cassandra通信的DAO类的不同实现。
如果你问是否有任何可以访问Cassandra(或Thrift)的预构建的Spring实用程序,那么答案是否定的,至少与Spring 3.0中的内容一样。但是,一旦你拥有DAO接口集并且你的应用程序的所有其他层就位,这应该非常简单。
答案 3 :(得分:1)
我认为没有任何cassandra-spring库可用。但是,您可以使用Spring来实例化和配置与Cassandra对话的bean,并将其注入到您需要持久性的任何其他bean中。这样你就可以让它受益于Inversion Of Control和Spring ApplicationContext提供的所有功能。 这样,您就可以将知道cassandra数据存储区的代码与业务逻辑分开并使用spring。
因此,与Cassandra对话的组件将具有[@Repository][1]
刻板印象,例如它是一个存储库,就像一个存储库,例如与JDBC数据源进行对话。
答案 4 :(得分:0)
我参与了一个使用Spring和Cassandra的项目,名为Easy Cassandra。这里提供了一个样本:
https://weblogs.java.net/blog/otaviojava/archive/2013/08/25/run-cassandra-spring-data