Spring Data JPA是什么(Spring家族)

一、Spring家族

首先介绍一下Spring家族。
Spring家族生态系统,又被大家亲切地称为Spring全家桶,为开发者提供了一个一站式的应用开发平台,并提供多种技术选择。Spring官网(spring.io)的首页介绍了Spring生态的重要组成部分:

  • Spring Framework 5
  • Spring Boot
  • Spring Cloud
  • Spring Cloud Data Flow

但Spring家族远不止这些,还有许许多多优秀的子项目。Spring经过十几年的发展,已经建立起了强大、丰富的生态。

Spring Framework即Spring框架,最早的版本在03年的时候发布,目的是为了简化J2EE(后来改名为Java EE,后来又改成Jarkata EE)开发的复杂性。Spring框架遵从了Java EE的部分规范,比如Servlet API、Bean Validation和JPA等。对Java EE取其精华,弃之糟粕。

Spring框架由多个子模块/子项目组成,如Web相关的、数据库相关的、以及最重要的核心容器,提供了依赖注入的实现。

Spring Boot可以协助开发者快速搭建并运行Spring应用,把以前需要手动配置的东西,按照常用的约定配置好。如果有特殊的配置需求,可以在统一的配置文件中进行自定义。这种做法降低了新手入门的门槛,真正做到开箱即用。

Spring Cloud基于Spring Boot,为需要分布式系统的常见的应用场景提供了解决方案,让开发者不必重复开发相应的基础设施。服务发现和注册、负载均衡、配置中心、熔断机制等等,有了Spring Cloud,这些功能开箱即用。

二、Spring Data JPA

1. Spring Data

在企业级应用开发中,对数据库的访问和操作是必须的。Spring Data提供了对各种各样数据库的支持,目标是简化数据库访问,为数据访问提供熟悉且一致的基于Spring的编程模型,同时仍保留底层数据存储的特殊特性。Spring Data包括关系型的、非关系型的, map-reduce框架的, 基于云的数据服务。

  • 非关系型
    • Spring Data MongoDB(文档数据库)
    • Spring Data Neo4j (图形数据库)
    • Spring Data Redis(键/值存储)
    • Spring Data Hbase(列族数据库)
  • 关系型
    • Spring Data JDBC
    • Spring Data JPA

2.JPA

JPA,全称Java Persistence API 。当时Sun公司提出JPA规范出于两个原因:(1) 简化应用开发工作, 在JPA框架下创建实体和创建Java 类一样简单,JPA的框架和接口也都非常简单,没有太多特别的规则和设计模式的要求;(2) 整合ORM标准,任何声称符合 JPA 规范的框架都遵循同样的架构,提供相同的访问 API,这保证了基于JPA开发的企业应用能够经过少量的修改就能够在不同的JPA框架下运行 。

JPA规范及其具体实现框架

JPA只是一个规范、一个标准,不含具体实现。JPA具体实现有很多,如apache的OpenJPA、如Eclipse Link,如使用广泛的Hibernate JPA。

3.Spring Data JPA

Spring Data JPA 是 Spring Data下的一个子项目。 是JPA规范的再次封装抽象,(1)为那些希望使用JPA规范作为数据应用开发的开发者提供了简便的、开箱即用的方案。 (2)在JPA定义的规范外,额外提供了一些好用的功能,如分页、排序、复杂查询等。

Spring Data JPA = JPA + 增强功能

可以大致理解为,Spring Data JPA包含了JPA规范和Spring项目自己提出的增加功能。

Spring Data JPA 底层默认采用了Hibernate框架作为其具体实现(JPA Provider)。但也可以换成其他JPA的框架。

You may also like...

发表评论

电子邮件地址不会被公开。 必填项已用*标注

16 + 6 =