Spring Data 概览
Spring Data的使命是为数据访问提供熟悉且一致的基于Spring的编程模型,同时仍保留底层数据存储的特殊特性。
它使数据访问技术,关系数据库和非关系数据库,map-reduce框架和基于云的数据服务变得简单易用。 这是一个伞形项目,其中包含许多特定于给定数据库的子项目。 这些项目是通过与这些激动人心的技术背后的许多公司和开发人员合作开发的。
-----------
星云解读:
众所周知,数据库大体上可以分为关系型数据库和非关系型数据库.
数据库种类繁多,为了建立一个统一访问这些数据库的方式,Spring Data 项目应运而生.
-----------
功能
- 强大的存储库和自定义对象映射抽象
- 从存储库方法名称派生动态查询
- 实现域基类提供基本属性
- 支持透明审核(创建,最后更改)
- 可以集成自定义存储库代码
- 通过JavaConfig和自定义XML命名空间轻松实现Spring集成
- 与Spring MVC控制器的高级集成
- 跨存储持久性的实验支持
星云解读:
-----------
需要将通用的数据库基本的增删改查进行抽象封装并建立映射
需要和Spring 完美兼容
需要支持Spring MVC
-----------
主要模块
- Spring Data Common: Spring 核心支撑每个Spring Data模块。
- Spring Data JDBC: 对JDBC 提供Spring Data repository支持
- Spring Data JDBC Ext: 支持对标准JDBC的数据库特定扩展,包括对Oracle RAC快速连接故障转移的支持,AQ JMS支持以及对使用高级数据类型的支持。
- Spring Data JPA: 对JPA提供 Spring Data repository 支持
- Spring Data KeyValue: 基于映射的repository(存储库)和SPI可轻松构建用于KEY-VALUE存储的Spring Data模块。
- Spring Data LDAP: 对LDAP 提供 Spring Data repository支持
- Spring Data MongoDB : MongoDB的基于Spring的对象文档支持和存储库。
- Spring Data Redis: 从Spring应用程序轻松配置和访问Redis。
- Spring Data Rest: 将Spring Data存储库导出为超媒体驱动的RESTful资源。
- Spring Data for Apache Cassandra: 轻松配置和访问Apache Cassandra或大规模,高可用性,面向数据的Spring应用程序。
- Spring Data for Apache Geode :轻松配置和访问Apache Geode,实现高度一致,低延迟,面向数据的Spring应用程序。
- Spring Data for Apache Solr: 为您的面向搜索的Spring应用程序轻松配置和访问Apache Solr。
- Spring Data for Pivotal GemFire : 轻松配置和访问Pivotal GemFire,实现高度一致,低延迟/高吞吐量,面向数据的Spring应用程序。
星云解读:
-----------------
目前接触比较常用和重要的的是
Spring Data Common
Spring Data JPA
Spring Data MongoDB
Spring Data Redis
-----------------
社区模块
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.
相关模块
- Spring Data JDBC Extensions - 提供对Spring Framework中提供的JDBC支持的扩展。
- Apache Hadoop的Spring - 通过提供统一的配置模型和易于使用的API来简化Apache Hadoop,以便使用HDFS,MapReduce,Pig和Hive。
- Spring Content - 将内容与Spring Data Entities关联,并将其存储在许多不同的商店中,包括文件系统,S3,数据库或Mongo的GridFS。
版本发布
Spring Data是一个由独立项目组成的总体项目,原则上具有不同的发布节奏。 为了管理投资组合,发布了BOM(物料清单 - 请参见此示例),其中包含针对单个项目的一组策略依赖项。 发布列车有名称而不是版本,以避免与子项目混淆。
名称是一个字母序列(因此您可以按时间顺序排序)与着名计算机科学家和软件开发人员的名称。 当单个项目的点数累积到临界质量时,或者其中一个项目中存在一个需要每个人都可用的关键错误时,发布列车将推出名称以“-SRX”结尾的“服务发布”, 其中“X”是一个数字。
目前,版本系列包含以下模块:
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)