本书围绕Spring Data Access相关技术,着重强调方法的流程分析和成员变量的分析,测试用例的数量相对较少。 本书内容包含Spring Data Access中的四大核心模块的使用及其源码分析,四大模块分别是spring-jdbc、spring-tx、spring-orm和spring-oxm。本书可以帮助读者快速掌握这四大模块的基本使用方法以及Spring Data Access中常见接口的处理流程。 本书的源码分析大部分情况下遵循测试用例优先,尽可能保证源码可复现。 本书适合作为具有一定Java编程基础的读者、对Spring框架有基础开发能力的读者和对Spring Data Access开发有一定实践经验的读者的参考用书。
在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月