一. 总览

Spring Data为数据访问提供一个熟悉的、一致的、基于Spring的编程模型,并且保留了基础数据存储的特殊性。

它使得数据访问技术,关系型及非关系型数据库,map-reduce框架以及基于云的数据服务变得简单易用,它包含了许多子项目,每个子项目针对某个数据库,这些子项目是与这些令人振奋的技术背后的许多公司及开发人员共同开发的。

二. 特征

强大的存储库及自定义对象映射抽象

根据存储库方法的名称进行动态查询

提供基本属性来实现域基类

支持透明审核(创建,最后修改)

集成自定义存储库代码的可能性

通过JavaConfig和自定义XML命名空间轻松实现与Spring的集成

与Spring MVC的高度集成

跨存储持久性的实验支持

三. 主要模块

Spring Data Commons:每个Spring Data模块的核心Spring概念。

Spring Data JDBC :Spring Data对JDBC的支持。

Spring Data JDBC Ext:支持标准JDBC的数据库特定扩展,包括对Oracle RAC快速连接故障转移的支持,对AQ JMS的支持以及对使用高级数据类型的支持。

Spring Data JPA:对JPA的Spring Data存储库支持。

Spring Data KeyValue:Map基于存储库和SPI,轻松建立key-value存储的,一个Spring数据模块。

Spring Data LDAP:Spring数据存储库对Spring LDAP的支持。

Spring Data MongoDB :MongoDB的基于Spring的对象文档支持和存储库。

Spring Data Redis:轻松配置和从Spring应用程序访问Redis。

Spring Data REST:将 Spring Data存储库导出为超媒体驱动的RESTful资源。

适用于Apache Cassandra的Spring数据 :易于配置和访问Apache Cassandra或大规模,高可用性,面向数据的Spring应用程序。

用于Apache Geode的Spring数据 :易于配置和访问Apache Geode,以实现高度一致,低延迟的面向数据的Spring应用程序。

用于Apache Solr的Spring数据 :可以轻松配置并访问基于搜索的Spring应用程序的Apache Solr。

适用于Pivotal GemFire的Spring数据 :可以轻松配置并访问Pivotal GemFire,以实现高度一致,低延迟/高吞吐量的面向数据的Spring应用程序。

以上引自官网。

由此可见,Spring Data也如同Spring其他的子项目一样,它不是一个新的技术,而是一系列的框架的集合,它对JDBC,JPA等等持久层框架进行了进一步的封装,使我们能够更加容易地使用它。

它支持的关系型数据库:
Oracle
MySQL

它支持的非关系型数据库:
NoSQL
Map-Reduce 框架
云基础数据服务
搜索服务

四. 为什么使用Spring Data

我们以前操作数据库,需要写大量的代码,数据库连接、SQL文、数据转换、数据库连接关闭等等,使用Spring Data可以简化数据库访问,使得开发人员只需要加一些注解就可以实现我们的功能,同时它还有分页、排序等功能可以直接使用,大大节省了我们的开发时间, 同时它支持当前最流行的云服务,而它的开源也使得它会被持续优化。