Spring Data

Lovelace-SR1

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 Apace 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 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.

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)

Quick start

Bootstrap your application with Spring Initializr.

Documentation

Each Spring project has its own; it explains in great details how you can use project features and what you can achieve with them.
Lovelace-SR1 CURRENT GA Reference Doc. API Doc.
Moore-BUILD-SNAPSHOT SNAPSHOT Reference Doc. API Doc.
Lovelace-BUILD-SNAPSHOT SNAPSHOT Reference Doc. API Doc.
Kay-SR11 GA Reference Doc. API Doc.
Kay-BUILD-SNAPSHOT SNAPSHOT Reference Doc. API Doc.
Ingalls-SR16 GA Reference Doc. API Doc.
Ingalls-BUILD-SNAPSHOT SNAPSHOT Reference Doc. API Doc.