Spring Data
2021.2.2Spring 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 VMware Tanzu 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.
-
Oracle NoSQL Database SDK for Spring Data - Spring Data module for Oracle NoSQL Database and Oracle NoSQL Cloud Service.
-
Spring Data for Apache Solr - Easy configuration and access to Apache Solr for your search-oriented Spring applications.
-
Spring Data Vault - Vault repositories built on top of Spring Data KeyValue.
-
Spring Data YugabyteDB - Spring Data module for YugabyteDB distributed SQL database.
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)
Quickstart Your Project
Documentation
2021.2.2 CURRENT GA | Reference Doc. | API Doc. |
2022.0.0-SNAPSHOT SNAPSHOT | ||
2022.0.0-M5 PRE | Reference Doc. | API Doc. |
2021.2.3-SNAPSHOT SNAPSHOT | ||
2021.1.7-SNAPSHOT SNAPSHOT | ||
2021.1.6 GA | Reference Doc. | API Doc. |
2021.0.12-SNAPSHOT SNAPSHOT | ||
2021.0.11 GA | Reference Doc. | API Doc. |