有没有使用 Spring 3.0 和 Cassandra 作为后端的示例/教程? [关闭]

Posted

技术标签:

【中文标题】有没有使用 Spring 3.0 和 Cassandra 作为后端的示例/教程? [关闭]【英文标题】:Are there any examples/tutorials of using Spring 3.0 with Cassandra as a backend? [closed] 【发布时间】:2011-01-29 03:10:44 【问题描述】:

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

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

【问题讨论】:

所以你是在学习 Spring MVC,而不是 Spring,它的重点更广 @mirror303:很抱歉给您带来了误解,但是,是的,我将时间集中在学习 Spring MVC,而不是整个 Spring 技术堆栈。 以后继续关注 Spring Data 项目。他们计划支持 cassandra 和 HBase。 springsource.org/spring-data 【参考方案1】:

AFAIK 没有涵盖 Spring (3.0) 和 Cassandra 的“公共”教程或示例。 所以也许你可以研究一下:)

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

【讨论】:

【参考方案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 接口和应用程序的所有其他层,这应该很容易编写。

【讨论】:

matt b,感谢您对事物的如此出色的解释。我会尝试查看更多信息,我希望你对事实的看法是正确的,一旦我将所有层都到位,事情就会变得清晰。【参考方案3】:

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

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

【讨论】:

【参考方案4】:

我是 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.xml 和https://github.com/rantav/hector/blob/master/core/src/test/resources/cassandra-context-test-v2-new.xml

【讨论】:

【参考方案5】:

我参与了一个使用 Spring 和 Cassandra 的项目,名为 Easy Cassandra。此处提供了一个示例:https://weblogs.java.net/blog/otaviojava/archive/2013/08/25/run-cassandra-spring-data

【讨论】:

OP 这是一个项目而不是代码示例

以上是关于有没有使用 Spring 3.0 和 Cassandra 作为后端的示例/教程? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

GenericDAO 和 NoSuchBeanDefinitionException:没有唯一的 bean Spring 3.0

使用 spring 3.0 进行用户身份验证

Grails 3.0 和 Spring Security

Spring 5.3 与 Servlet 3.0 的使用

spring 3.0 包含哪些 maven 依赖项?

Java EE - Servlet 3.0 和 Spring MVC