我玩 Spring 框架已经 18 个小时了。很漂亮,真的很神奇。据我所知,spring 知道如何使用 rdbms数据库。
谁能告诉我有关 spring + NoSQL(cassandra、couchdb\mongodb、redis 甚至 HBase)的经验?
谢谢
对于 Cassandra,您可以使用Hector。它有一个可用的弹簧集成(由我实现)。在测试资源中有一个示例 xml - 您只需映射 3 个 bean,并且您已经HectorTemplate
注入并准备好使用。
对于其他一切 - 你说 spring 很漂亮,确实如此,因为你可以使用几乎任何 API,而无需 API 专门遵循或依赖于 spring。
如果要使用 Redis,可以查看 Jedis http://github.com/xetorthio/jedis(这是 Redis 的 Java 客户端)。如果您使用 Grails(Spring 之上的 groovy 框架),您可以使用 GORM for Redis http://www.grails.org/plugin/redis作为 Redis 的持久性框架。而如果你想坚持java并使用带有持久性框架的redis,你可以使用JOhm http://github.com/xetorthio/johm
我使用 EasyCassandra 在生产中部署了一个项目,该项目是在 Spring Data JPA 之上编写的。
然而,EasyCassandra 自 2014 年 9 月以来一直没有发展。
然而,随着经验的积累,我在另一个完全不同的项目中使用了 Spring Cassandra。结果是惊人的。我用 Spring Data JPA 去除了绒毛。在 Spring Cassandra 中使用 QueryBuilder API 实际上要容易得多。您可以使用 Spring Data JPA 进行简单查询,但是当事情变得复杂时,您最终可能会发现查询构建器更直接且映射更少。
我假设您的意思类似于 JDBCTemplate。如果是这样,那么就没有基于模板的功能可以支持整个 NoSQL 人群。您要么需要在该 NoSQL 客户端的客户端上构建自己的客户端。例如,Cassandra 有许多由不同人编写的客户端:
http://wiki.apache.org/cassandra/ClientOptions
您可能会对特定的 NoSQL 数据库感到幸运,似乎有人正在开发 Cassandra4Spring 框架:
对于 Cassandra,您可以使用 datastax 驱动程序或 Hector 框架
对于 mongoDb,您可以使用 spring 数据(参见示例http://www.mkyong.com/mongodb/spring-data-mongodb-insert-document/)。您还可以将休眠用作 mongodb 的 OGM(参见示例http://pragmaticintegrator.wordpress.com/2011/07/14/use-spring-and-hibernate-with-mongodb/)
对于 Redis,您可以使用弹簧数据。您可以查看我的帖子以获取完整示例如何使用 java / spring 将图像存储到 redis