《Spring Data实战》——1.2 主题概述

简介: 大部分的NoSQL Java API并未支持将领域对象映射到存储的数据抽象(MongoDB中的文件,Neo4j中的节点与关系)。因此,当使用原生的Java驱动程序进行读取和写入操作时,通常需要编写大量的代码来将数据映射到应用程序的领域对象。

本节书摘来自异步社区《Spring Data实战》一书中的第1章,第1.2节,作者: 【美】Mark Pollack , Oliver Gierke , Thomas Risberg , Jon Brisbin , Michael Hunger著,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.2 主题概述

Spring Data的核心目标是:支持对所有的存储进行资源配置,从而实现对该存储的访问。这种支持主要是通过XML命名空间和Spring JavaConfig的支持类实现的,这可以使我们轻松地对Mongo数据库、嵌入式Neo4j实例等建立访问。除此之外,它也集成了Spring的核心功能,如JMX。这意味着某些存储可以通过原生API暴露统计数据,这些数据将会由Spring Data暴露给JMX。

大部分的NoSQL Java API并未支持将领域对象映射到存储的数据抽象(MongoDB中的文件,Neo4j中的节点与关系)。因此,当使用原生的Java驱动程序进行读取和写入操作时,通常需要编写大量的代码来将数据映射到应用程序的领域对象。所以Spring Data模块最核心的部分是一个映射和转换的API,用来获取要持久化的领域类中的元数据,使得任意领域对象都可以转换成存储用的数据类型。

在此基础上,就如同著名的Spring JdbcTemplate、JmsTemplate等,我们也会看到以模板模式实现的API,其中包括RedisTemplate、MongoTemplate等。或许你已经知道,这些模板提供了让我们可以执行常用操作的辅助方法。例如:在一条语句中持久化一个对象的时候,能够自动进行资源管理和异常处理。此外,还提供了回调接口的API,允许在资源管理和异常处理过程中使用存储原生的API,以提高灵活性。

这些功能给我们提供了一个工具箱,使得我们可以像使用传统的数据库那样来实现数据访问层。后面的章节将会详细介绍这些功能。为了让程序变得更简单,Spring Data还在模板实现的基础上提供了一个存储(repository)抽象,这将减少数据访问对象在实现一个普通接口时去定义通用场景的代价,如标准的CRUD(创建、读取、更新、删除)操作以及执行存储支持的查询语句。事实上,这种抽象位于最顶层,而且它会尽可能在合理范围内将不同存储API融合在一起。因此,存储的操作将拥有许多共同点。这也是后面会有专门的章节(第2章)来介绍基本编程模型的原因。

接着,我们来看一下用来展示这些特定存储模块功能所用的示例代码和领域模型。

相关文章
|
18天前
|
自然语言处理 Java API
Spring Boot 接入大模型实战:通义千问赋能智能应用快速构建
【10月更文挑战第23天】在人工智能(AI)技术飞速发展的今天,大模型如通义千问(阿里云推出的生成式对话引擎)等已成为推动智能应用创新的重要力量。然而,对于许多开发者而言,如何高效、便捷地接入这些大模型并构建出功能丰富的智能应用仍是一个挑战。
74 6
|
21天前
|
缓存 NoSQL Java
Spring Boot与Redis:整合与实战
【10月更文挑战第15天】本文介绍了如何在Spring Boot项目中整合Redis,通过一个电商商品推荐系统的案例,详细展示了从添加依赖、配置连接信息到创建配置类的具体步骤。实战部分演示了如何利用Redis缓存提高系统响应速度,减少数据库访问压力,从而提升用户体验。
54 2
|
1月前
|
存储 Java API
如何使用 Java 记录简化 Spring Data 中的数据实体
如何使用 Java 记录简化 Spring Data 中的数据实体
34 9
|
27天前
|
Java 数据库连接 数据库
让星星⭐月亮告诉你,SSH框架01、Spring概述
Spring是一个轻量级的Java开发框架,旨在简化企业级应用开发。它通过IoC(控制反转)和DI(依赖注入)降低组件间的耦合度,支持AOP(面向切面编程),简化事务管理和数据库操作,并能与多种第三方框架无缝集成,提供灵活的Web层支持,是开发高性能应用的理想选择。
35 1
|
1月前
|
Java 数据库连接 Spring
【2021Spring编程实战笔记】Spring开发分享~(下)
【2021Spring编程实战笔记】Spring开发分享~(下)
25 1
|
24天前
|
XML Java 数据格式
Spring IOC容器的深度解析及实战应用
【10月更文挑战第14天】在软件工程中,随着系统规模的扩大,对象间的依赖关系变得越来越复杂,这导致了系统的高耦合度,增加了开发和维护的难度。为解决这一问题,Michael Mattson在1996年提出了IOC(Inversion of Control,控制反转)理论,旨在降低对象间的耦合度,提高系统的灵活性和可维护性。Spring框架正是基于这一理论,通过IOC容器实现了对象间的依赖注入和生命周期管理。
61 0
|
1月前
|
XML Java 数据库连接
【2020Spring编程实战笔记】Spring开发分享~(上)
【2020Spring编程实战笔记】Spring开发分享~
48 0
|
2月前
|
Java 数据库连接 API
【Java笔记+踩坑】Spring Data JPA
从常用注解、实体类和各层编写方法入手,详细介绍JPA框架在增删改查等方面的基本用法,以及填充用户名日期、分页查询等高级用法。
【Java笔记+踩坑】Spring Data JPA
|
3月前
|
Java Spring 数据库
怎样动动手指就能实现数据操作?Spring Data JPA背后的魔法揭秘
【8月更文挑战第31天】在Java开发中,数据库交互至关重要。传统的JDBC操作繁琐且难维护,而Spring Data JPA作为集成JPA的数据访问层解决方案,提供了CRUD等通用操作接口,显著减少代码量。通过继承`JpaRepository`,开发者能轻松实现数据的增删改查,甚至复杂查询和分页也不再困难。本文将通过示例详细介绍如何利用Spring Data JPA简化数据访问层的开发,提升代码质量和可维护性。
41 0
|
3月前
|
JSON Java API
解码Spring Boot与JSON的完美融合:提升你的Web开发效率,实战技巧大公开!
【8月更文挑战第29天】Spring Boot作为Java开发的轻量级框架,通过`jackson`库提供了强大的JSON处理功能,简化了Web服务和数据交互的实现。本文通过代码示例介绍如何在Spring Boot中进行JSON序列化和反序列化操作,并展示了处理复杂JSON数据及创建RESTful API的方法,帮助开发者提高效率和应用性能。
134 0
下一篇
无影云桌面