Spring Data’s mission is to provide a familiar and consistent, Spring-based programming model for data access while still retaining the special traits of the underlying data store.
It makes it easy to use data access technologies, relational and non-relational databases, map-reduce frameworks, and cloud-based data services. This is an umbrella project which contains many subprojects that are specific to a given database. The projects are developed by working together with many of the companies and developers that are behind these exciting technologies.
Features
Powerful repository and custom object-mapping abstractions
Dynamic query derivation from repository method names
Implementation domain base classes providing basic properties
Support for transparent auditing (created, last changed)
Possibility to integrate custom repository code
Easy Spring integration via JavaConfig and custom XML namespaces
Advanced integration with Spring MVC controllers
Experimental support for cross-store persistence
Main modules
Spring Data Commons - Core Spring concepts underpinning every Spring Data module.
Spring Data JDBC - Spring Data repository support for JDBC.
Spring Data JDBC Ext - Support for database specific extensions to standard JDBC including support for Oracle RAC fast connection failover, AQ JMS support and support for using advanced data types.
Spring Data JPA - Spring Data repository support for JPA.
Spring Data KeyValue - Map based repositories and SPIs to easily build a Spring Data module for key-value stores.
Spring Data LDAP - Spring Data repository support for Spring LDAP.
Spring Data MongoDB - Spring based, object-document support and repositories for MongoDB.
Spring Data Redis - Easy configuration and access to Redis from Spring applications.
Spring Data REST - Exports Spring Data repositories as hypermedia-driven RESTful resources.
Spring Data for Apache Cassandra - Easy configuration and access to Apache Cassandra or large scale, highly available, data oriented Spring applications.
Spring Data for Apache Geode - Easy configuration and access to Apache Geode for highly consistent, low latency, data oriented Spring applications.
Spring Data for Apache Solr - Easy configuration and access to Apache Solr for your search oriented Spring applications.
Spring Data for Pivotal GemFire - Easy configuration and access to Pivotal GemFire for your highly consistent, low latency/high through-put, data oriented Spring applications.
Community modules
Spring Data Aerospike - Spring Data module for Aerospike.
Spring Data ArangoDB - Spring Data module for ArangoDB.
Spring Data Couchbase - Spring Data module for Couchbase.
Spring Data Azure Cosmos DB - Spring Data module for Microsoft Azure Cosmos DB.
Spring Data Cloud Datastore - Spring Data module for Google Datastore.
Spring Data Cloud Spanner - Spring Data module for Google Spanner.
Spring Data DynamoDB - Spring Data module for DynamoDB.
Spring Data Elasticsearch - Spring Data module for Elasticsearch.
Spring Data Hazelcast - Provides Spring Data repository support for Hazelcast.
Spring Data Jest - Spring Data module for Elasticsearch based on the Jest REST client.
Spring Data Neo4j - Spring-based, object-graph support and repositories for Neo4j.
Spring Data Vault - Vault repositories built on top of Spring Data KeyValue.
Related modules
Spring Data JDBC Extensions - Provides extensions to the JDBC support provided in the Spring Framework.
Spring for Apache Hadoop - Simplifies Apache Hadoop by providing a unified configuration model and easy to use APIs for using HDFS, MapReduce, Pig, and Hive.
Spring Content - Associate content with your Spring Data Entities and store it in a number of different stores including the File-system, S3, Database or Mongo’s GridFS.
Modules in Incubation
Spring Data R2DBC - Spring Data support for R2DBC.
Release train
Spring Data is an umbrella project consisting of independent projects with, in principle, different release cadences. To manage the portfolio, a BOM (Bill of Materials - see this example) is published with a curated set of dependencies on the individual project. The release trains have names, not versions, to avoid confusion with the sub-projects.
The names are an alphabetic sequence (so you can sort them chronologically) with names of famous computer scientists and software developers. When point releases of the individual projects accumulate to a critical mass, or if there is a critical bug in one of them that needs to be available to everyone, the release train will push out “service releases” with names ending “-SRX”, where “X” is a number.
Currently, the release train contains the following modules:
Spring Data Commons
Spring Data JPA
Spring Data KeyValue
Spring Data LDAP
Spring Data MongoDB
Spring Data Redis
Spring Data REST
Spring Data for Apache Cassandra
Spring Data for Apache Geode
Spring Data for Apache Solr
Spring Data for Pivotal GemFire
Spring Data Couchbase (community module)
Spring Data Elasticsearch (community module)
Spring Data Neo4j (community module)
Spring Initializr
Quickstart Your Project
Bootstrap your application with Spring Initializr.
translate:
翻译:
Spring Data的任务是为数据访问提供一个熟悉的、一致的、基于Spring的编程模型,同时仍然保留底层数据存储的特殊特性。
它使使用数据访问技术、关系数据库和非关系数据库、map-reduce框架以及基于云的数据服务变得容易。这是一个伞形项目,包含许多特定于给定数据库的子项目。这些项目是通过与这些令人兴奋的技术背后的许多公司和开发人员合作开发的。
特征
强大的存储库和自定义对象映射抽象
从存储库方法名派生动态查询
提供基本属性的实现域基类
支持透明审核(创建、上次更改)
集成自定义存储库代码的可能性
通过JavaConfig和自定义XML名称空间轻松集成Spring
与Spring MVC控制器的高级集成
跨存储持久性的实验支持
主要模块
Spring数据共享-支撑每个Spring数据模块的核心Spring概念。
Spring数据JDBC—Spring数据存储库对JDBC的支持。
Spring Data JDBC Ext—支持标准JDBC的特定于数据库的扩展,包括支持Oracle RAC快速连接故障转移、AQ JMS支持和使用高级数据类型的支持。
Spring Data JPA—Spring数据存储库对JPA的支持。
基于Spring数据键值映射的存储库和spi,可以轻松地为键值存储构建Spring数据模块。
SpringDataLDAP—SpringLDAP的SpringDataRepository支持。
Spring数据MongoDB-基于Spring的MongoDB对象文档支持和存储库。
Spring Data Redis-从Spring应用程序轻松配置和访问Redis。
Spring Data REST-将Spring数据存储库导出为超媒体驱动的RESTful资源。
ApacheCassandra的Spring数据-易于配置和访问ApacheCassandra或大规模、高可用、面向数据的Spring应用程序。
ApacheGeode的Spring数据-易于配置和访问ApacheGeode,用于高度一致、低延迟、面向数据的Spring应用程序。
ApacheSolr的Spring数据-为面向搜索的Spring应用程序轻松配置和访问ApacheSolr。
Pivotal GemFire的Spring数据-易于配置和访问Pivotal GemFire,用于高度一致、低延迟/高吞吐量、面向数据的Spring应用程序。
社区模块
弹簧数据Aerospike-用于Aerospike的弹簧数据模块。
Spring Data ArangoDB—ArangoDB的Spring数据模块。
Spring Data Couchbase—Couchbase的Spring数据模块。
Spring Data Azure Cosmos DB-用于Microsoft Azure Cosmos DB的Spring数据模块。
Spring数据云数据存储-用于Google数据存储的Spring数据模块。
Spring数据云扳手-谷歌扳手的Spring数据模块。
弹簧数据发电机-发电机的弹簧数据模块。
弹簧数据弹性搜索-弹性搜索的弹簧数据模块。
Spring Data Hazelcast-为Hazelcast提供Spring数据存储库支持。
Spring Data Jest-基于Jest REST客户端的弹性搜索的Spring数据模块。
Spring数据Neo4j—基于Spring的,支持Neo4j的对象图和存储库。
Spring数据保险库-建立在Spring数据键值之上的保险库存储库。
相关模块
Spring Data JDBC扩展——为Spring框架中提供的JDBC支持提供扩展。
Spring for Apache Hadoop—通过提供统一的配置模型和易于使用的api来使用HDFS、MapReduce、Pig和Hive,简化了Apache Hadoop。
Spring内容-将内容与Spring数据实体相关联,并将其存储在许多不同的存储中,包括文件系统、S3、数据库或Mongo的GridFS。
孵化模块
Spring Data R2DBC-对R2DBC的Spring数据支持。
释放列车
Spring Data是一个伞形项目,由独立项目组成,原则上具有不同的发布节奏。为了管理项目组合,将发布一个BOM(物料清单-请参阅本示例),其中包含一组对单个项目的依赖关系。发布序列有名称,而不是版本,以避免与子项目混淆。
这些名字是按字母顺序排列的(所以你可以按时间顺序排列),上面有著名的计算机科学家和软件开发人员的名字。当单个项目的点发布累积到一个临界质量时,或者如果其中一个项目中有一个需要向所有人提供的关键bug,则发布序列将推出名称以“-SRX”结尾的“服务发布”,其中“X”是一个数字。