Spring Data es un proyecto de SpringSource cuyo propósito es facilitar el uso de bases de datos no relacionales, de frameworks map-reduce, y de servicios de datos albergados en "la nube". Se trata de un proyecto paraguas que contiene muchos otros proyectos que permiten trabajar con una base de datos específica.
Aunque todos estos subproyectos dependen por defecto de Spring 3.1.2, todos ellos son compatibles con Spring 3.0.7 (aunque en este caso hay que declarar las dependencias manualmente en los ficheros pom.xml).
Entre las fuentes de datos aportadas se encuentran MongoDB, GemFire, Neo4j, HBase, Redis, Hadoop, servicios REST en general, JPA y otros. Aquí os dejo una tabla con todas las fuentes de datos soportadas por spring Data:
Category | Sub-project | |
Relational Databases | JPA | Spring Data JPA - Simplifies the development of creating a JPA-based data access layer |
JDBC Extensions | Support for Oracle RAC, Advanced Queuing, and Advanced datatypes. Support for using QueryDSL with JdbcTemplate. | |
Big Data | Apache Hadoop | The Apache Hadoop project is an open-source implementation of frameworks for reliable, scalable, distributed computing and data storage. |
Data-Grid | GemFire | VMware vFabric GemFire is a distributed data management platform providing dynamic scalability, high performance, and database-like persistence. It blends advanced techniques like replication, partitioning, data-aware routing, and continuous querying. |
HTTP | REST | Spring Data REST - Perform CRUD operations of your persistence model using HTTP and Spring Data Repositories. |
Key Value Stores | Redis | Redis is an open source, advanced key-value store. |
Document Stores | MongoDB | MongoDB is a scalable, high-performance, open source, document-oriented database. |
Graph Databases | Neo4j | Neo4j is a graph database, a fully transactional database that stores data structured as graphs. |
Column Stores | HBase | Apache HBase is an open-source, distributed, versioned, column-oriented store modeled after Google' Bigtable |
Common Infrastructure | Commons | Provides shared infrastructure for use across various data access projects. General support for cross-database persistence is located here |
Grails Mapping | Provides a database unified object mapping framework that is portable across different databases for Grails. |