gpt4 book ai didi

Spring 数据替代品

转载 作者:行者123 更新时间:2023-12-04 06:10:34 25 4
gpt4 key购买 nike

目前我们有一个与 spring 和 JPA 一起工作的企业应用程序。
今天我们正在计划我们的下一代服务器。

我们正在争论是否在我们的项目中使用spring-data?它似乎提高了生产力和开发时间。

spring-data 有什么替代方案可以考虑吗?为什么不单独使用 spring 和 JPA?
你有什么建议?

请记住,我们是从头开始开发的,因此除了以下限制之外没有其他限制:

  • 我们使用 mysql 和 mongoDB
  • 我们用 Java 编码
  • 我们将在 GWT 中开发客户端代码。

  • 目前我们有一个分层的架构。
    我们有一个服务层和一个管理者层,它们负责持久化和业务逻辑。构建它的人没有看到插入第三个 DAO 层的充分理由。

    最佳答案

    Spring Data 比 Spring + JPA 有一些技术优势,在纯 SQL 环境中,我认为给 Spring Data 一个优势:

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

  • 鉴于您使用 MySQL 和 MongoDB,我认为 Spring Data 是一个强有力的候选者,因为它允许开发人员编写一个数据访问 API(Spring Data)而不是两个(JPA 和 MongoDB Java 客户端)。

    关于现有架构,听起来好像您的管理层正在实现富域模式或 Active Record。

    在我看来,当结合使用 Spring 的 @Configurable 注入(inject)服务时,Spring Data 非常适合富域。

    最后,我想说,当需要为 Spring Security 和 Spring Social 等使用 MongoDB 或其他而不是 SQL 的事物实现服务时,Spring Data 也提供了显着优势。

    我们在可以找到 here 的模糊数据库示例 webapp 中执行此操作。 . (免责声明:我是目前fuzzydb 上唯一的最新提交者,并且已经很多年没有接触过它,但我们确实有一个基于该代码的实时服务www.fridgemountain.com,但忽略了推广它)

    关于 Spring 数据替代品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19298292/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com