Spring Data JPA从入门到精通
上QQ阅读APP看书,第一时间看更新

1.3 了解Spring Data

1.3.1 Spring Data介绍

Spring Data项目是从2010年发展起来的,从创立之初Spring Data就想提供一个大家熟悉的、一致的、基于Spring的数据访问编程模型,同时仍然保留底层数据存储的特殊特性。它可以轻松地让开发者使用数据访问技术,包括关系数据库、非关系数据库(NoSQL)和基于云的数据服务。

Spring Data Common是Spring Data所有模块的公用部分,该项目提供跨Spring数据项目的共享基础设施。它包含了技术中立的库接口以及一个坚持java类的元数据模型。

Spring Data不仅对传统的数据库访问技术JDBC、Hibernate、JDO、TopLick、JPA、Mybitas做了很好的支持、扩展、抽象、提供方便的API,还对NoSQL等非关系数据做了很好的支持,包括MongoDB、Redis、Apache Solr等。

1.3.2 Spring Data的子项目

主要子项目(Main modules)如下:

  • Spring Data Commons
  • Spring Data Gemfire
  • Spring Data JPA
  • Spring Data KeyValue
  • Spring Data LDAP
  • Spring Data MongoDB
  • Spring Data REST
  • Spring Data Redis
  • Spring Data for Apache Cassandra
  • Spring Data for Apache Solr

社区支持的子项目(Community modules):

  • Spring Data Aerospike
  • Spring Data Couchbase
  • Spring Data DynamoDB
  • Spring Data Elasticsearch
  • Spring Data Hazelcast
  • Spring Data Jest
  • Spring Data Neo4j
  • Spring Data Vault

其他子项目(Related modules):

  • Spring Data JDBC Extensions
  • Spring for Apache Hadoop
  • Spring Content

当然,还有许多开源社区做出的贡献,比如Mybitas等。

市面上主要的子项目如图1-3所示。

图1-3

1.3.3 Spring Data操作的主要特性

Spring Data项目旨在为大家提供一种通用的编码模式。数据访问对象实现了对物理数据层的抽象,为编写查询方法提供了方便。通过对象映射,实现域对象和持续化存储之间的转换,而模板提供的是对底层存储实体的访问实现,如图1-4所示。操作上主要有如下特征:

  • 提供模板操作,如Spring Data Redis和Spring Data Riak。
  • 强大的Repository和定制的数据存储对象的抽象映射。
  • 对数据访问对象的支持(Auting等)。

图1-4