上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