描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302613848丛书名: 软件开发源码精讲系列
本书基于源码,由浅入深,全面讲解Spring Data Access相关技术。
本书围绕Spring Data Access相关技术,着重强调方法的流程分析和成员变量的分析,测试用例的数量相对较少。 本书内容包含Spring Data Access中的四大核心模块的使用及其源码分析,四大模块分别是spring-jdbc、spring-tx、spring-orm和spring-oxm。本书可以帮助读者快速掌握这四大模块的基本使用方法以及Spring Data Access中常见接口的处理流程。 本书的源码分析大部分情况下遵循测试用例优先,尽可能保证源码可复现。 本书适合作为具有一定Java编程基础的读者、对Spring框架有基础开发能力的读者和对Spring Data Access开发有一定实践经验的读者的参考用书。
第1章 Spring数据源码环境搭建与核心类介绍
1.1 spring-jdbc测试环境搭建
1.1.1 spring-jdbc基于SpringXML环境搭建
1.1.2 spring-jdbc基于Spring注解模式环境搭建
1.2 spring-orm测试环境搭建
1.2.1 spring-orm基于SpringXML环境搭建
1.2.2 spring-orm基于Spring注解模式环境搭建
1.3 Spring数据操作中的核心类
1.4 总结
第2章 JdbcTemplate类分析
2.1 初识JdbcTemplate类
2.1.1 DataSource分析
2.1.2 JdbcTemplate的初始化
2.2 JdbcTemplate中的执行操作分析
2.2.1 获取数据库链接对象
2.2.2 应用Statement的配置数据
2.2.3 处理警告信息
2.2.4 释放链接对象
2.2.5 配合PreparedStatementCreator和PreparedStatementCallback的执行操作
2.2.6 配合ConnectionCallback的执行操作
2.3 JdbcTemplate中的查询操作分析
2.3.1 RowMapperResultSetExtractor对象分析
2.3.2 query方法分析
2.3.3 RowMapper接口分析
2.3.4 ResultSetExtractor对象分析
2.4 JdbcTemplate中的更新操作分析
2.4.1 配合PreparedStatementCreator和PreparedStatementSetter的更新操作
2.4.2 配合SQL的批量更新
2.5 PreparedStatementCreator和PreparedStatementSetter接口分析
2.5.1 PreparedStatementCreatorImpl对象分析
2.5.2 SimplePreparedStatementCreator对象分析
2.5.3 ArgumentTypePreparedStatementSetter对象分析
2.5.4 ArgumentPreparedStatementSetter对象分析
2.6 NamedParameterJdbcTemplate分析
2.6.1 NamedParameterJdbcTemplate中的执行操作
2.6.2 NamedParameterJdbcTemplate中的更新操作
2.6.3 NamedParameterJdbcTemplate中的查询操作
2.7 SqlParameterSource接口分析
2.7.1 EmptySqlParameterSource类分析
2.7.2 AbstractSqlParameterSource类分析
2.7.3 BeanPropertySqlParameterSource类分析
2.7.4 MapSqlParameterSource类分析
2.8 JdbcTemplate中的call方法分析
2.8.1 extractReturnedResults方法分析
2.8.2 extractOutputParameters方法分析
2.9 总结
第3章 SimpleJdbc类分析
3.1 SimpleJdbcInsert测试环境搭建
3.2 SimpleJdbcCall测试环境搭建
3.3 SimpleJdbcInsert类分析
3.3.1 SimpleJdbcInsert初始化分析
3.3.2 SimpleJdbcInsert执行方法分析
3.4 SimpleJdbcCall类分析
3.4.1 SimpleJdbcCall中的checkCompiled方法分析
3.4.2 SimpleJdbcCall中的matchInParameterValuesWithCallParameters方法分析
3.4.3 SimpleJdbcCall中的executeCallInternal方法分析
3.5 总结
第4章 RdbmsOperation 类分析
4.1 RdbmsOperation测试环境搭建
4.1.1 SqlQuery测试环境搭建
4.1.2 SqlUpdate测试环境搭建
4.2 初识RdbmsOperation类
4.3 SqlOperation类分析
4.4 SqlQuery类分析
4.5 SqlUpdate类分析
4.6 总结
第5章 spring-jdbc中的数据源对象
5.1 spring-jdbc数据源对象梗概
5.2 委派模式下的数据源
5.2.1 TransactionAwareDataSourceProxy中获取数据库链接对象
5.2.2 UserCredentialsDataSourceAdapter中获取数据库链接对象
5.2.3 IsolationLevelDataSourceAdapter中获取数据库链接对象
5.2.4 WebSphereDataSourceAdapter中获取数据库链接对象
5.3 AbstractDataSource 系列的数据源
5.4 总结
第6章 spring-jdbc中异常分析
6.1 SQLErrorCodesFactory 分析
6.1.1 SQL异常状态码初始化
6.1.2 SQLErrorCodes对象分析
6.2 SQLExceptionTranslator接口分析
6.2.1 AbstractFallbackSQLExceptionTranslator类分析
6.2.2 SQLExceptionSubclassTranslator类分析
6.2.3 SQLStateSQLExceptionTranslator类分析
6.2.4 SQLErrorCodeSQLExceptionTranslator类分析
6.3 总结
第7章 spring-jdbc与嵌入式数据库
7.1 嵌入式数据库环境搭建
7.2 嵌入式数据库实例化分析
7.2.1 configureConnectionProperties方法分析
7.2.2 DatabasePopulatorUtils.execute分析
7.3 总结
第8章 Spring事务中的三个关键类
8.1 Spring 事务测试环境搭建
8.2 事务相关接口说明
8.2.1 TransactionExecution接口
8.2.2 SavepointManager接口
8.2.3 TransactionStatus接口
8.2.4 TransactionDefinition接口
8.2.5 PlatformTransactionManager接口
8.2.6 TransactionCallback接口
8.2.7 TransactionOperations接口
8.2.8 TransactionFactory接口
8.3 AbstractPlatformTransactionManager类分析
8.3.1 handleExistingTransaction方法分析
8.3.2 suspend方法分析
8.3.3 newTransactionStatus方法分析
8.3.4 prepareSynchronization方法分析
8.3.5 prepareTransactionStatus 方法分析
8.3.6 doSuspendSynchronization方法分析
8.3.7 doResumeSynchronization方法分析
8.3.8 AbstractPlatformTransactionManager中commit方法分析
8.3.9 AbstractPlatformTransactionManager中rollback方法分析
8.3.10 AbstractPlatformTransactionManager特殊方法说明
8.4 DataSourceTransactionManager类分析
8.4.1 DataSourceTransactionManager中InitializingBean接口实现分析
8.4.2 DataSourceTransactionManager中doBegin方法分析
8.4.3 DataSourceTransactionManager中doSuspend方法分析
8.4.4 DataSourceTransactionManager中doResume方法分析
8.4.5 DataSourceTransactionManager中doCommit方法分析
8.4.6 DataSourceTransactionManager中doRollback方法分析
8.4.7 DataSourceTransactionManager中doSetRollbackOnly方法分析
8.4.8 DataSourceTransactionManager中doCleanupAfterCompletion方法分析
8.5 TransactionTemplate类分析
8.6 总结
第9章 EnableTransactionManagement相关分析
9.1 EnableTransactionManagement注解简介
9.2 TransactionManagementConfigurationSelector类分析
9.3 AutoProxyRegistrar类分析
9.4 ProxyTransactionManagementConfiguration类分析
9.5 AspectJTransactionManagementConfiguration类分析
9.6 AspectJJtaTransactionManagementConfiguration类分析
9.7 AbstractTransactionManagementConfiguration类分析
9.8 TransactionalEventListenerFactory类分析
9.9 总结
第10章 Spring事务切面支持
10.1 TransactionAspectSupport类分析
10.2 TransactionInterceptor类分析
10.3 ReactiveTransactionSupport类分析
10.3.1 响应式createTransactionIfNecessary方法分析
10.3.2 响应式prepareTransactionInfo方法分析
10.3.3 响应式commitTransactionAfterReturning方法分析
10.3.4 响应式completeTransactionAfterThrowing方法分析
10.3.5 响应式invokeWithinTransaction 方法分析
10.4 总结
第11章 事务定义及事务属性源对象分析
11.1 事务定义和事务属性介绍
11.2 默认的事务属性对象及其子类
11.3 默认的事务定义
11.4 静态事务定义
11.5 委派事务定义及其子类
11.6 TransactionAttributeSource基础认识
11.7 NameMatchTransactionAttributeSource类分析
11.8 AbstractFallbackTransactionAttributeSource类分析
11.9 CompositeTransactionAttributeSource类分析
11.10 MethodMapTransactionAttributeSource类分析
11.11 总结
第12章 Spring事务注解解析接口
12.1 初识TransactionAnnotationParser接口
12.2 Ejb3TransactionAnnotationParser类分析
12.3 JtaTransactionAnnotationParser类分析
12.4 SpringTransactionAnnotationParser类分析
12.5 总结
第13章 保存点管理器、事务工厂与事务执行器
13.1 初识SavepointManager
13.2 AbstractTransactionStatus及其子类分析
13.3 JdbcTransactionObjectSupport类分析
13.3.1 HibernateTransactionObject类
13.3.2 JpaTransactionObject类
13.3.3 DataSourceTransactionObject类
13.4 初识事务工厂
13.5 SimpleTransactionFactory类分析
13.6 JtaTransactionManager 及其子类分析
13.6.1 InitializingBean接口实现细节
13.6.2 AbstractPlatformTransactionManager中doGetTransaction方法的实现
13.6.3 WebLogicJtaTransactionManager类分析
13.6.4 WebSphereUowTransactionManager类分析
13.7 初识事务执行器
13.8 总结
第14章 AbstractPlatformTransactionManager子类分析
14.1 CciLocalTransactionManager类分析
14.1.1 getResourceFactory方法分析
14.1.2 doGetTransaction方法分析
14.1.3 isExistingTransaction方法分析
14.1.4 doBegin 方法分析
14.1.5 doSuspend 方法分析
14.1.6 doResume方法分析
14.1.7 doCommit方法分析
14.1.8 doRollback方法分析
14.1.9 doSetRollbackOnly方法分析
14.1.10 doCleanupAfterCompletion方法分析
14.2 JpaTransactionManager类分析
14.3 HibernateTransactionManager类分析
14.4 总结
第15章 Spring事务处理流程分析
15.1 Spring注解模式下事务处理流程
15.2 总结
第16章 spring-orm与Hibernate基础分析
16.1 spring-orm与Hibernate环境搭建之基于Spring注解
16.2 spring-orm与Hibernate环境搭建之基于SpringXML
16.3 LocalSessionFactoryBean类分析
16.4 初识HibernateTemplate类
16.5 doExecute方法分析
16.6 总结
第17章 spring-orm模块中Hibernate框架的重点类分析
17.1 OpenSessionInViewInterceptor类分析
17.2 HibernateDaoSupport类分析
17.3 OpenSessionInterceptor类分析
17.4 OpenSessionInViewFilter类分析
17.5 SessionHolder类分析
17.6 SpringBeanContainer类分析
17.7 SpringSessionContext类分析
17.8 总结
第18章 spring-orm模块中JPA的persistenceunit和support
18.1 初识persistenceunit
18.2 PersistenceUnitManager接口分析
18.3 SmartPersistenceUnitInfo接口分析
18.4 AsyncRequestInterceptor类分析
18.5 OpenEntityManagerInViewFilter类分析
18.6 OpenEntityManagerInViewInterceptor类分析
18.7 PersistenceAnnotationBeanPostProcessor类分析
18.8 SharedEntityManagerBean类分析
18.9 总结
第19章 spring-orm模块中JPA核心对象分析
19.1 AbstractEntityManagerFactoryBean类分析
19.1.1 LocalEntityManagerFactoryBean类分析
19.1.2 LocalContainerEntityManagerFactoryBean类分析
19.2 JpaVendorAdapter接口分析
19.2.1 AbstractJpaVendorAdapter类分析
19.2.2 HibernateJpaVendorAdapter类分析
19.2.3 EclipseLinkJpaVendorAdapter类分析
19.3 ExtendedEntityManagerCreator类分析
19.4 EntityManagerFactoryUtils类分析
19.5 总结
第20章 spring-oxm分析
20.1 spring-oxm测试环境搭建
20.2 AbstractMarshaller类分析
20.3 XStreamMarshaller类分析
20.4 总结
在Spring框架中Spring Data Access相关模块负责进行数据访问。
初识Spring Data Access是在2015年的一个项目中,当时项目中使用的是Spring 4.1版本,该版本的功能虽然已经比较强大,但是对各类配置文件的处理比较烦琐。笔者对于Spring Data Access中的一些实现细节十分感兴趣,并付诸实践,记录了一些源码的流程,同时想把这些经验分享给更多的人,便有了《Spring Data Access源码精讲》。
《Spring Data Access源码精讲》的组织结构和主要内容
《Spring Data Access源码精讲》共20章。
第1~7章主要围绕spring-jdbc模块中的技术进行分析,主要包含常见的spring-jdbc的使用以及核心类的分析,内容如下。
第1章对Spring Data Access框架的使用进行说明,对spring-jdbc项目中核心类进行介绍,并介绍了spring-orm测试环境的搭建,对spring-jdbc与spring-orm都采用了两套搭建模式,分别是Spring XML和Spring注解。
第2章对spring-jdbc模块中的JdbcTemplate类进行全面分析,包含JdbcTemplate类的基础构造(接口及类继承关系)分析,并对JdbcTemplate类中的执行方法、查询方法、更新方法做了细节分析。
第3章对spring-jdbc模块中的SimpleJdbc类进行全面分析,包含SimpleJdbc的测试环境搭建,主要对SimpleJdbcInsert类和SimpleJdbcCall类的使用进行说明,同时对这两个类的处理流程做出相关分析。
第4章对spring-jdbc模块中的RdbmsOperation类进行全面分析,包含RdbmsOperation的测试环境搭建,主要对SqlQuery类和SqlUpdate类的使用进行说明,同时对SqlQuery、SqlUpdate和RdbmsOperation类进行分析。
第5章对spring-jdbc模块中的数据源对象进行全面分析,主要围绕数据源DataSource进行说明,介绍了spring-jdbc中关于委派模式下数据源的种类以及处理方式。
第6章对spring-jdbc模块中的异常相关内容进行分析,主要包含spring-jdbc中SQL异常状态码的初始化以及SQL异常状态码转换的相关内容。
第7章对spring-jdbc模块中的嵌入式数据库进行分析,包含嵌入式数据库相关测试环境搭建以及嵌入式数据库实例化相关流程分析。
第8~15章主要围绕spring-tx模块中的技术进行分析,主要内容包含spring-tx中核心类以及事务处理相关内容的分析,内容如下。
第8章对spring-tx模块中的三个核心类进行分析,主要对spring-tx中AbstractPlatform- TransactionManager、DataSourceTransactionManager和TransactionTemplate三个类进行分析,并对周边相关接口进行说明。
第9章对spring-tx模块中的EnableTransactionManagement注解进行分析,包含EnableTransactionManagement注解的使用以及注解的实现底层处理,该注解的分析入口是TransactionManagementConfigurationSelector,围绕TransactionManagementConfigurationSelector类引出spring-tx中的关于事务配置的处理。
第10章对spring-tx模块中的事务切面相关内容进行分析,包含TransactionAspectSupport类的分析和TransactionInterceptor类的分析。
第11章对spring-tx模块中的事务定义及事务属性源对象进行分析,包含事务的定义和事务属性的介绍,关于它们的介绍主要与接口方法相关,除此之外还对其中比较关键的实现类进行了相关说明。
第12章对spring-tx模块中的事务注解解析接口进行分析,包含TransactionAnnotationParser接口的三个子类的分析。
第13章对spring-tx模块中的事务工厂和事务执行器进行分析,包含SavepointManager接口和TransactionFactory接口在spring-tx中的具体实现过程。
第14章对spring-tx模块中的AbstractPlatformTransactionManager子类进行分析,包含CciLocalTransactionManager、JpaTransactionManager、HibernateTransactionManager类的分析,着重对CciLocalTransactionManager类中的各实现细节方法进行分析。
第15章对整体的Spring事务处理流程进行说明。
第16~19章主要围绕spring-orm模块中的技术进行分析,内容如下。
第16章对spring-orm与Hibernate框架的整合进行了环境搭建并且对Spring ORM中Hibernate的两个基础类进行分析,这两个基础类是LocalSessionFactoryBean和HibernateTemplate。
第17章对spring-orm模块中关于Hibernate的一些核心类进行分析。
第18章对spring-orm模块中关于JPA的persistenceunit和support相关包进行分析。
第19章对spring-orm模块中关于JPA的核心类进行分析,主要围绕AbstractEntityManager- FactoryBean类、JpaVendorAdapter接口、ExtendedEntityManagerCreator类和EntityManager- FactoryUtils类进行说明。
第20章主要围绕spring-oxm相关的技术进行分析。
《Spring Data Access源码精讲》源码可以扫描下方二维码下载。
源代码
读者对象
《Spring Data Access源码精讲》适合作为具有一定Java编程基础的读者、对Spring框架有基础开发能力的读者和对Spring Data Access开发有一定实践经验的读者的参考用书。
致谢
在此,非常诚挚地感谢所有SpringFramework项目的创建者和开发者,感谢他们所做的工作和对开源项目的热情,没有他们就没有《Spring Data Access源码精讲》的诞生。
由于作者水平有限,书中不当之处在所难免,欢迎广大同行和读者批评指正。
王涛
2022年6月
评论
还没有评论。