Spring Data 比 Spring + JPA 有一些技术优势,在纯 SQL 环境中,我认为给 Spring Data 一个优势:
- Spring Data 对所有实现使用相同的 CrudRepository 接口,因此您在 JPA 和 MongoDB 之间切换的工作量更少
- Spring Data 可以让您一次又一次地编写相同的方法。您只需将方法添加到接口,它就会为您生成它(例如 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 注入服务时,Spring Data 非常适合富域。
最后,我想说,当需要为 Spring Security 和 Spring Social 等使用 MongoDB 或其他而不是 SQL 的事物实现服务时,Spring Data 也提供了显着优势。
我们在可以在此处找到的模糊数据库示例 webapp 中执行此操作。(免责声明:我是目前fuzzydb 上唯一的最新提交者,并且已经有很多年没有接触过它了,但是我们确实有一个基于该代码的实时服务www.fridgemountain.com,但忽略了推广它)