15

正如我在标题中所写,我正在尝试学习 Spring 3.0(我已经了解 Django、Pylons 和一些更简单的 MVC 框架)并尝试使用 Cassandra 作为我的 Web 应用程序的后端。

有没有这样做的现实世界的例子?或者也许一些教程?我知道这两种技术的文档的存在,但我正在寻找“更快”的东西来阅读并让我滚动。

4

5 回答 5

11

我是 Hector https://github.com/rantav/hector的作者,它是 cassandra 的领先 Java 客户端,所以我鼓励您看看它提供的内容。

虽然我个人没有在 spring 中使用 hector,但我们确实得到了一些增加 spring 支持的贡献。参见例如https://github.com/rantav/hector/blob/master/core/src/test/resources/cassandra-context-test-v2.xmlhttps://github.com/rantav/hector/blob /master/core/src/test/resources/cassandra-context-test-v2-new.xml

于 2010-11-23T06:31:15.857 回答
2

AFAIK 没有“公共”教程或示例涵盖 Spring(3.0)与 Cassandra 的结合。所以也许你可以调查一下:)

我建议开始查看 Spring 中的“模板”术语(例如JDBCTemplateHibernateTemplate)并创建类似“CassandraTemplate”的东西。

于 2010-03-18T17:08:14.550 回答
2

如果您已经熟悉 MVC 框架,那么您应该知道您在后端使用的数据库/数据存储不应影响您的整个 MVC 应用程序,或者您如何构建事物 - 它只会影响您的数据层及其方式检索数据。

使用 Spring MVC,公认的做法是将数据模型表示为一系列“域模型/类”,它们通常只是保存数据的 POJO。这里的“域”表示与你的问题域有关;因此,如果您有一个处理客户订购商品的应用程序,那么您希望有一个Customer类、一个Order类等。

MVC 应用程序的三层中的每一层——控制器、服务/业务逻辑层和 DAO 层都与这些域模型类交互。由于 DAO 层负责在后端检索或更新这些数据,这意味着 DAO 层需要知道如何从 Cassandra 获取您的CustomerOrder类,如何更新某些Customer字段等。

因此,在使用 Cassandra 或任何其他“NoSQL”数据库时,如何构建 Spring MVC 应用程序本身并没有什么特别之处。您只需要提供可以与 Cassandra 通信的 DAO 类的不同实现。

如果您询问是否有任何预构建的 Spring 实用程序可以访问 Cassandra(或 Thrift),那么答案是否定的,至少就 Spring 3.0 中的内容而言。但是一旦你设置了 DAO 接口和应用程序的所有其他层,这应该很容易编写。

于 2010-03-18T17:38:05.750 回答
1

我认为没有任何可用的 cassandra-spring 库。但是,您可以使用 Spring 实例化和配置与 Cassandra 对话的 bean,并将其注入您拥有的任何其他需要持久性的 bean。这样你就可以让它受益于控制反转和 Spring ApplicationContext 提供的所有功能。这样,您可以将知道 cassandra 数据存储的代码与业务逻辑分开并使用 spring。

因此,与 Cassandra 对话的组件将具有[@Repository][1]原型,例如它是一个存储库,就像一个存储库一样,例如与 JDBC 数据源对话。

于 2010-03-18T22:17:04.207 回答
0

我参与了一个使用 Spring 和 Cassandra 的项目,名为 Easy Cassandra。此处提供了一个示例:

https ://weblogs.java.net/blog/otaviojava/archive/2013/08/25/run-cassandra-spring-data

于 2013-08-26T12:21:20.787 回答