书名:Spring Data JPA从入门到精通
定价:59.00元
出版社:清华大学出版社
ISBN:9787302499480
包装:平装
开本:16开
出版时间:2018-05-01
用纸:胶版纸
页数:238
字数:403000
《Spring Data JPA从入门到精通》以Spring Boot为技术基础,从入门到精通,由浅入深地介绍Spring Data JPA的使用。有语法,有实践,有原理剖析。
《Spring Data JPA从入门到精通》分为12章,内容包括整体认识JPA、JPA基础查询方法、定义查询方法、注解式查询方法、@Entity实例里面常用注解详解、JpaRepository扩展详解、JPA的MVC扩展REST支持、DataSource的配置、乐观锁、SpEL表达式在Spring Data里面的应用、Spring Data Redis实现cacheable的实践、IntelliJ IDEA加快开发效率、Spring Data REST简单介绍等。
《Spring Data JPA从入门到精通》适合Java开发初学者、Java开发工程师、Java开发架构师阅读,也适合高等院校和培训学校相关专业的师生教学参考。
一部分 基础部分
D1章 整体认识JPA 3
1.1 市场上ORM框架比对 3
1.2 JPA的介绍以及开源实现 4
1.3 了解Spring Data 5
1.3.1 Spring Data介绍 5
1.3.2 Spring Data的子项目 5
1.3.3 Spring Data操作的主要特性 6
1.4 Spring Data JPA的主要类及结构图 7
1.5 MySQL的快速开发实例 8
D2章 JPA基础查询方法 13
2.1 Spring Data Common的Repository 13
2.2 Repository的类层次关系 (diagms/hierarchy/structure) 14
2.3 CrudRepository方法详解 16
2.3.1 CrudRepository interface内容 17
2.3.2 CrudRepository interface的使用示例 18
2.4 PagingAndSortingRepository方法详解 19
2.4.1 PagingAndSortingRepository interface 内容 19
2.4.2 PagingAndSortingRepository使用示例 20
2.5 JpaRepository方法详解 21
2.5.1 JpaRepository详解 21
2.5.2 JpaRepository的使用方法 21
2.6 Repository的实现类SimpleJpaRepository 22
D3章 定义查询方法 24
3.1 定义查询方法的配置方法 24
3.2 方法的查询策略设置 25
3.3 查询方法的创建 26
3.4 关键字列表 27
3.5 方法的查询策略的属性表达式 29
3.6 查询结果的处理 29
3.6.1 参数选择分页和排序(Pageable/Sort) 29
3.6.2 查询结果的不同形式(List/Stream/Page/Future) 30
3.6.3 Projections对查询结果的扩展 31
3.7 实现机制介绍 34
D4章 注解式查询方法 36
4.1 @Query详解 36
4.1.1 语法及源码 36
4.1.2 @Query用法 37
4.1.3 @Query排序 38
4.1.4 @Query分页 39
4.2 @Param用法 40
4.3 SpEL表达式的支持 40
4.4 @Modifying修改查询 41
4.5 @QueryHints 42
4.6 @Procedure储存过程的查询方法 43
4.7 @NamedQueries预定义查询 44
4.7.1 简介 44
4.7.2 用法举例 45
4.7.3 @NamedQuery、@Query和方法定义查询的对比 45
D5章 @Entity实例里面常用注解详解 46
5.1 javax.persistence概况介绍 46
5.2 基本注解 48
5.2.1 @Entity 48
5.2.2 @Table 49
5.2.3 @Id 50
5.2.4 @IdClass 50
5.2.5 @GeneratedValue 51
5.2.6 @Basic 52
5.2.7 @Transient 52
5.2.8 @Column 52
5.2.9 @Temporal 53
5.2.10 @Enumerated 53
5.2.11 @Lob 54
5.2.12 几个注释的配合使用 54
5.3 关联关系注解 55
5.3.1 @JoinColumn 定义外键关联的字段名称 55
5.3.2 @OneToOne关联关系 55
5.3.3 @OneToManyg与@ManyToOne关联关系 56
5.3.4 @OrderBy关联查询时排序 57
5.3.5 @JoinTable关联关系表 58
5.3.6 @ManyToMany关联关系 59
5.4 Left join、Inner join与@EntityGraph 60
5.4.1 Left join与Inner join 60
5.4.2 @EntityGraph 61
5.5 关于关系查询的一些坑 61
D二部分 晋级之GJ部分
D6章 JpaRepository扩展详解 65
6.1 JpaRepository介绍 65
6.2 QueryByExampleExecutor的使用 66
6.2.1 QueryByExampleExecutor详细配置 66
6.2.2 QueryByExampleExecutor的使用示例 67
6.2.3 QueryByExampleExecutor的特点及约束 68
6.2.4 ExampleMatcher详解 68
6.2.5 QueryByExampleExecutor使用场景&实际的使用 70
6.2.6 QueryByExampleExecutor的原理 73
6.3 JpaSpecificationExecutor的详细使用 74
6.3.1 JpaSpecificationExecutor的使用方法 74
6.3.2 Criteria概念的简单介绍 75
6.3.3 JpaSpecificationExecutor示例 76
6.3.4 Specification工作中的一些扩展 78
6.3.5 JpaSpecificationExecutor实现原理 80
6.4 自定义Repository 81
6.4.1 EntityManager介绍 81
6.4.2 自定义实现Repository 82
6.4.3 实际工作的应用场景 84
D7章 Spring Data JPA的扩展 95
7.1 Auditing及其事件详解 96
7.1.1 Auditing如何配置 96
7.1.2 @MappedSuperclass 98
7.1.3 Auditing原理解析 99
7.1.4 Listener事件的扩展 101
7.2 @Version处理乐观锁的问题 103
7.3 对MvcWeb的支持 105
7.3.1 @EnableSpringDataWebSupport 105
7.3.2 DomainClassConverter组件 105
7.3.3 HandlerMethodArgumentResolvers可分页和排序 106
7.3.4 @PageableDefault改变默认的page和size 108
7.3.5 Page原理解析 108
7.4 @EnableJpaRepositories详解 110
7.4.1 Spring Data JPA加载Repositories配置简介 110
7.4.2 @EnableJpaRepositories详解 111
7.4.3 JpaRepositoriesAutoConfiguration源码解析 113
7.5 默认日志简单介绍 114
7.6 Spring Boot JPA的版本问题 117
D8章 DataSource的配置 119
8.1 默认数据源的讲解 120
8.1.1 通过三种方法查看默认的DataSource 120
8.1.2 DataSource和JPA的配置属性 123
8.1.3 JpaBaseConfiguration 124
8.1.4 Configuration思路 126
8.2 AliDruidDataSource的配置 126
8.3 事务的处理及其讲解 129
8.3.1 默认@Transactional注解式事务 129
8.3.2 声明式事务 133
8.4 如何配置多数据源 134
8.4.1 在application.properties中定义两个DataSource 134
8.4.2 定义两个DataSourceConfigJava类 135
8.5 Naming命名策略详解及其实践 137
8.5.1 Naming命名策略详解 137
8.5.2 实际工作中的一些扩展 139
8.6 完整的传统XML的配置方法 140
D三部分 延展部分
D9章 IntelliJ IDEA与Spring JPA 145
9.1 IntelliJ IDEA概述 145
9.2 DataBase插件 146
9.3 Persistence及JPA相关的插件介绍 150
9.4 IntelliJ IDEA分析源码用到的视图 155
D10章 Spring Data Redis详解 158
10.1 Redis 之 Jedis 的使用 158
10.2 Spring Boot+Spring Data Redis配置 164
10.2.1 D1步:分析一下源码 165
10.2.2 D2步:配置方法 168
10.2.3 D3步:调用的地方 170
10.2.4 D4步:总结 171
10.2.5 主要的几个类&简单用法介绍 171
10.3 Spring Data Redis结合Spring Cache配置方法 172
10.3.1 Spring Cache 介绍 172
10.3.2 Spring Boot快速开始Demo 176
10.3.3 Spring Boot Cache 实现过程解析 177
10.3.4 Cache和Spring Data Redis结合快速开始 179
10.3.5 Spring Boot实现过程 182
D11章 SpEL表达式讲解 189
11.1 SpEL介绍 189
11.1.1 SpEL主要特点 190
11.1.2 使用方法 190
11.2 SpEL的基础语法 191
11.2.1 逻辑运算操作 192
11.2.2 逻辑关系比较 193
11.2.3 逻辑关系 194
11.2.4 三元表达式& Elvis运算符 194
11.2.5 正则表达式的支持 195
11.2.6 Bean的引用 195
11.2.7 List 和 Map 的操作 196
11.3 主要的类及其原理 197
11.3.1 ExpressionParser 197
11.3.2 root object 198
11.3.3 EvaluationContext 199
11.3.4 类型转换 199
11.3.5 SpelParserConfiguration 编译器配置 200
11.3.6 表达式模板设置 201
11.3.7 主要类关系图 202
11.3.8 SpEL支持的一些特性 202
11.4 Spring的主要使用场景 203
11.4.1 Spring Data JPA中SpEL支持 203
11.4.2 Spring Cachae 204
11.4.3 @Value 204
11.4.4 Web 验证应用场景 2
评价五: 阅读完这本书,我最大的感受是它在“从入门”这个阶段做得非常扎实。对于一个之前对数据库操作比较熟悉,但从未接触过 ORM 框架,特别是 JPA 的读者来说,这本书的讲解非常到位。它循序渐进地介绍了 JPA 的核心概念,从数据库的表结构如何映射到 Java 对象,到对象之间如何建立关系(一对一、一对多、多对多),再到如何通过 EntityManager 进行数据的增删改查。书中对 JPQL(Java Persistence Query Language)的介绍,也比较系统,能够帮助读者理解如何在面向对象的方式下进行数据库查询。然而,当翻阅到后面关于 Spring Data JPA 的部分时,我总感觉这部分内容像是对 JPA 基础的一个补充,而不是一个独立的、深入的体系。例如,Spring Data JPA 的 Repository 接口的强大之处在于其自动派生查询,书中对此有提及,但对于更复杂的查询场景,比如动态查询、批量更新等,讲解就显得不够详尽。而且,对于 JPA 在实际项目中的一些优化策略,例如缓存的使用、性能调优等,书中并没有太多的篇幅去展开。
评分评价四: 这本书的“Spring语法实践原理”这个副标题,倒是吸引了我。它确实尝试将 JPA 的概念与 Spring 的应用上下文结合起来讲解。在书中,我能看到 JPA 的实体类是如何在 Spring IoC 容器中被管理的,EntityManagerFactory 和 EntityManager 又是如何被 Spring 自动配置和注入的。关于 Spring Data JPA 的 Repository 接口,书中也解释了它们是如何被 Spring 扫描并实例化为 Bean 的,这对于理解 Spring Data JPA 的底层工作机制非常有帮助。我也喜欢书中关于事务管理的部分,它结合了 Spring 的 `@Transactional` 注解,讲解了 JPA 事务是如何被Spring管理的,以及如何处理事务传播等问题。但是,我总觉得在“原理”这个层面,还能有更深入的剖析。例如,Spring Data JPA 在处理 Repository 方法时,其内部的查询生成器是如何工作的?当使用 `@Query` 注解时,Spring Data JPA 和 JPA 实体管理器是如何协同工作的?这些更底层的原理,如果能有更详细的图示或者代码层面的解释,将会对理解其“精通”起到更大的作用。
评分评价三: 这本书让我对 Spring Data JPA 的核心理念有了更清晰的认识。它不仅仅是简单地介绍 JPA 的 API,而是着重讲解了 Spring Data JPA 如何将 JPA 的强大功能与 Spring 的生态系统无缝集成。书中关于 Repository 接口的设计思想,以及如何通过简单的接口定义就能实现复杂的数据库操作,这一点给我留下了深刻的印象。作者通过大量的代码示例,演示了如何利用 Spring Data JPA 的派生查询、`@Query` 注解以及自定义查询来实现各种业务需求。尤其是在分页和排序方面,书中给出的例子非常实用,能够帮助读者快速掌握如何在实际项目中实现数据的分页展示和排序功能。然而,在一些更复杂的场景,比如如何处理多表联查、如何进行批量操作、如何利用 JPA 的乐观锁和悲观锁机制来保证数据一致性等方面,我感觉书中涉及的内容稍显浅显,没有深入展开。对于一个想要彻底掌握 Spring Data JPA 的开发者来说,还需要在这些方面进行更多的学习和实践。
评分评价一: 这本书的内容,我个人觉得在 JPA 基础概念的讲解上,虽然篇幅不算特别长,但确实做到了“入门”二字。它用比较清晰的逻辑,从 JPA 的核心组件(如 Entity、EntityManager、Persistence Unit)开始,逐步过渡到实体映射、关系映射等核心知识点。作者在解释 JPA 如何与数据库进行交互时,举例也算生动,能够帮助初学者快速建立起对 JPA 工作原理的基本认识。特别是关于实体状态(transient, managed, detached, removed)的描述,通过一些简单的场景模拟,让抽象的概念变得具象化。对于那些之前只接触过 JDBC 或者 ORM 框架(比如 Hibernate)但从未系统学习过 JPA 的读者来说,这本书的前半部分,能够帮助他们快速填补知识空白,理解 JPA 的设计哲学和优势所在。虽然书中对 Spring Data JPA 的介绍部分,我感觉还能再深入一些,例如在 Spring Data JPA 的 Repository 接口设计、自定义查询、分页与排序等方面,如果能有更丰富、更贴近实际开发场景的案例,那就更好了。但总体而言,对于零基础或者刚接触 JPA 的开发者,这本书提供了一个不错的起点,能够让他们在短时间内对 JPA 有一个初步且扎实的掌握。
评分评价二: 坦白说,这本书在“精通”这两个字上,对我个人而言,还有一些提升空间。虽然作者在 JPA 的基础查询方法上,涉及了诸如 `findByName`, `findByAgeGreaterThan`, `findByNameContaining` 等 Spring Data JPA 自动派生查询的功能,并且也提及了 `@Query` 注解的使用,但这些内容在很多 JPA 的教程或者博客中也都能找到。我期望在“精通”的部分,能够看到一些更深入的探讨,例如如何优化复杂的 JPQL 查询,如何处理大量的关联查询,如何利用 JPA 的二级缓存或者查询缓存来提升性能,以及在并发环境下,如何利用 JPA 来处理数据一致性问题。此外,对于 Spring Data JPA 和 Spring Boot 的集成,虽然书中肯定会涉及到,但我更希望能看到一些关于事务管理、异常处理、生命周期回调等更高级特性的深入讲解,以及在微服务架构下,如何结合 Spring Data JPA 进行数据访问层的设计。这本书更像是一本为 JPA 新手设计的“入门指南”,对于想要达到“精通”境界的开发者,可能还需要结合其他更深入的资料或者实践经验来补充。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.coffeedeals.club All Rights Reserved. 静流书站 版权所有