首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >弹簧数据选择

弹簧数据选择
EN

Stack Overflow用户
提问于 2013-10-10 14:16:39
回答 1查看 3.9K关注 0票数 8

目前,我们有一个用于spring和JPA的企业应用程序。今天,我们计划我们的下一代服务器。

我们正在讨论是否在我们的项目中使用spring数据?它似乎增加了生产力和发展时间。

除了春季数据,还有什么可供考虑的吗?为什么不单独使用spring和JPA呢?你有什么建议?

请记住,我们正开始从零开始开发,因此除了:

  1. 我们使用mysql和mongoDB
  2. 我们用java编码。
  3. 我们将在GWT中开发客户端代码。

目前我们有一个分层的架构。我们有一个服务层和一个管理层,负责持久化和业务逻辑。不管是谁构建的,都没有看到插入第三个DAO层的好理由。

EN

回答 1

Stack Overflow用户

发布于 2013-10-11 09:28:41

Spring数据在技术上优于Spring + JPA,在纯SQL环境中,我认为Spring数据具有优势:

  • 对于所有实现,Spring数据都使用相同的CrudRepository接口,因此在JPA与MongoDB之间切换的工作量将减少
  • Spring数据保存了您一次又一次地编写相同的方法。只需将方法添加到接口中,它就会为您生成方法(例如,UserRepository.findByUsername())
  • 您可以在JPA、MongoDB和其他实现的REST实现上保存样板(请参阅http://projects.spring.io/spring-data-rest/)
  • 如果您想尝试其他持久性或索引服务,那么对于成熟的和更新的技术,比如Neo4j、Hadoop、Solr、ElasticSearch、fuzzydb,都有Spring数据实现。

考虑到您使用的是MySQL和MongoDB,我认为Spring是一个很好的选择,因为它允许开发人员编写单个数据访问API (Spring ),而不是两个(JPA和MongoDB Java客户端)。

关于现有的体系结构,听起来好像您的管理层正在实现富域模式或活动记录。

在我看来,当使用Spring的@Configurable与服务注入相结合时,Spring数据非常适合富域。

最后,我要说的是,Spring数据在需要为诸如Security和Spring等使用MongoDB或其他而不是SQL的东西实现服务时也有很大的优势。

我们在可以找到这里的fuzzydb示例webapp中完成了这一工作。(免责声明:我是最近唯一的fuzzydb提交人,多年来没有接触过它,但我们确实有一个基于该代码的实时服务,www.fridgemountain.com,但忽略了对它的推广)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19298292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档