有没有使用 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 获取您的 Customer
或 Order
类,如何更新某些 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