互聯網輕量級 SSM 框架解密:Spring、Spring MVC、MyBatis 源碼深度剖析

互聯網輕量級 SSM 框架解密:Spring、Spring MVC、MyBatis 源碼深度剖析

作者: 李艷鵬 等
出版社: 電子工業
出版在: 2019-01-31
ISBN-13: 9787121359545
ISBN-10: 7121359545
總頁數: 528 頁





內容描述


SSM是Spring、Spring MVC和MyBatis框架的組合,是目前Java領域使用非常廣泛也非常穩定的開源Web框架。
本書以SSM的核心代碼剖析為基礎,突破Java Web研發瓶頸的束縛,選取Spring、Spring MVC和MyBatis框架中易於理解的版本,深入剖析了其中各個模塊的實現,從代碼中挖掘常用的設計模式,為讀者理解Spring系列框架的可擴展設計藝術提供了方法論和優秀實踐。
本書Spring源碼剖析篇基於Spring 4.3.2版本,剖析了Spring上下文、Spring AOP和Spring事務的實現,並通過實例展示了框架陷阱的隱蔽性及學習框架原理的必要性。
Spring MVC源碼剖析篇基於Spring MVC 3.0版本,這個版本比較簡單、核心清晰,便於讀者理解透徹,這裡主要講解其中的設計模式及可插拔的設計思路。
MyBatis源碼剖析篇基於MyBatis 3.4版本,幫助讀者對SQL語言、JDBC及數據訪問方式有更深入的了解,也能看到工廠、Builder、代理、裝飾者等設計模式在MyBatis中的大量應用。
本書對於互聯網從業者,或者傳統行業的IT工程師、架構師、技術經理、技術總監,以及想深耕IT行業的技術人員都有很強的借鑒性和實用價值。


目錄大綱


第1篇  深入剖析Spring源码
第1章  Spring基础介绍    2
1.1  Spring的核心结构    2
1.2  Spring的领域模型    6
第2章  Spring上下文和容器    7
2.1  Spring上下文的设计    7
2.2  Spring容器BeanFactory的设计    11
2.3  Spring父子上下文与容器    13
第3章  Spring加载机制的设计与实现    18
3.1  Spring ApplicationContext的加载及源码实现    18
3.2  Spring XML文件标签加载解析及自定义    27
3.3  Spring注解的加载及自动注入    31
第4章  Spring Bean探秘    45
4.1  Spring Bean的定义和注册设计    45
4.2  Spring Bean的定义模型    47
4.3  Spring Bean的运行(获取、创建)实现    48
4.4  Spring Bean的依赖注入的实现    59
4.5  Spring Bean的初始化    70
第5章  Spring代理与AOP    74
5.1  Spring代理的设计及JDK、CGLIB动态代理    75
5.2  Spring AOP的设计    82
5.3  Spring AOP的加载和执行机制    83
5.3.1  Spring AOP的加载及源码解析    83
5.3.2  Spring AOP的创建执行及源码解析    88
5.4  Spring事务管理设计及源码    101
5.5  Spring事务传播机制    115
第6章  Spring实战    118
6.1  对Spring重复AOP问题的分析    118
6.2  Spring Bean循环依赖的问题    125
第2篇  深入剖析Spring MVC源码
第7章  MVC简介    138
7.1  MVC的体系结构和工作原理    138
7.1.1  控制器    139
7.1.2  视图    139
7.1.3  模型    140
7.2  Web MVC的体系结构和工作原理    140
第8章  Spring Web MVC工作流    142
8.1  组件及其接口    142
8.1.1  DispatcherServlet    143
8.1.2  处理器映射    143
8.1.3  处理器适配器    144
8.1.4  处理器与控制器    145
8.1.5  视图解析器    145
8.1.6  视图    146
8.2  组件间的协调通信    146
第9章  DispatcherServlet的实现    148
9.1  深入剖析GenericServlet和HttpServlet    150
9.1.1  HTTP和Servlet规范简介    150
9.1.2  Servlet和GenericServlet详解    152
9.1.3  HttpServlet详解    152
9.2  深入剖析DispatcherServlet    159
9.2.1  HttpServletBean详解    161
9.2.2  FrameworkServlet详解    162
9.2.3  DispatchServlet详解    166
9.3  根共享环境的加载    182
9.3.1  基于Servlet环境监听器的实现结构    182
9.3.2  多级Spring环境的加载方式    189
第10章  基于简单控制器的流程实现    194
10.1  通过Bean名称URL处理器映射获取处理器执行链    194
10.1.1  抽象处理器映射    196
10.1.2  抽象URL处理器映射    199
10.1.3  抽象探测URL处理器映射    209
10.1.4  Bean名称URL处理器映射    210
10.2  通过处理器适配器把请求转接给处理器    211
10.2.1  简单控制处理适配器的设计    211
10.2.2  表单控制器处理HTTP请求的流程    212
10.3  对控制器类体系结构的深入剖析    214
10.3.1  Web内容产生器    215
10.3.2  抽象控制器类    217
10.3.3  基本命令控制器    218
10.3.4  抽象表单控制器    222
10.3.5  简单表单控制器    229
第11章  基于注解控制器的流程实现    230
11.1  默认注解处理器映射的实现    230
11.2  注解处理器适配器的架构设计    237
11.3  深入剖析注解控制器的处理流程    238
11.3.1  解析处理器方法    241
11.3.2  解析处理器方法的参数    253
11.3.3  绑定、初始化领域模型和管理领域模型    272
11.3.4  调用处理器方法    278
11.3.5  处理方法返回值和隐式模型到模型或视图的映射    281
11.3.6  如何更新模型数据    286
第12章  基于HTTP请求处理器实现RPC    288
12.1  深入剖析RPC客户端的实现    289
12.2  深入剖析RPC服务端的实现    299
第13章  深入剖析处理器映射、处理器适配器及处理器的实现    311
13.1  处理器映射的实现架构    311
13.1.1  处理器映射实现类    312
13.1.2  处理器映射抽象类    313
13.1.3  对处理器映射类的代码剖析    315
13.2  处理器适配器的实现架构    322
13.3  深入剖析处理器    325
13.3.1  简单控制器    325
13.3.2  注解控制器    339
13.3.3  HTTP请求处理器    342
13.4  拦截器的实现架构    344
第14章  视图解析和视图显示    353
14.1  基于URL的视图解析器和视图    353
14.1.1  内部资源视图解析器和内部资源视图    365
14.1.2  瓦块视图解析器和瓦块视图    371
14.1.3  模板视图解析器和模板视图    373
14.1.4  XSLT视图解析器和XSLT视图    377
14.2  更多的视图解析器    378
14.2.1  Bean名称视图解析器    378
14.2.2  内容选择视图解析器    379
14.2.3  资源绑定视图解析器    383
14.2.4  XML视图解析器    385
第3篇  深入剖析MyBatis源码
第15章  MyBatis介绍    388
15.1  MyBatis的历史    388
15.2  MyBatis子项目    389
15.3  MyBatis的自身定位    389
15.3.1  JPA持久化框架    390
15.3.2  MyBatis的功能    390
15.3.3  MyBatis与JPA的异同    390
15.4  MyBatis的架构    391
15.4.1  模块    391
15.4.2  MyBatis的项目包    392
第16章  构建阶段    394
16.1  关键类    394
16.2  关键时序    395
16.3  构建的入口:SqlSessionFactoryBuilder和SqlSessionFactory    396
16.4  配置(Configuration)和配置构造器(XmlConfigBuilder)    397
16.4.1  XmlConfigBuilder的初始化    397
16.4.2  完整的mybatis-3-config.dtd    399
16.4.3  解析配置文件构建Configuration配置    399
16.5  SQL简介    418
16.6  SQL映射的构建    419
16.6.1  通过XML定义的SQL Mapper    419
16.6.2  Configuration类中与SQL Mapping相关的类    420
16.6.3  XmlMapperBuilder是如何工作的    421
16.6.4  映射注解器定义的SQL Mapper    438
16.6.5  小结    440
第17章  执行阶段    441
17.1  关键类    441
17.2  关键接口及默认实现初始化    442
17.2.1  SqlSession及其关联类的构建过程    442
17.2.2  StatementHandler语句处理器    446
17.3  DQL语句是如何执行的    448
17.3.1  查询接口    448
17.3.2  关键时序    449
17.3.3  程序执行查询的入口:DefaultSqlSession#selectList(statement)    450
17.3.4  生成执行语句:getMappedStatement()    450
17.3.5  执行器查询:Executor#query()    451
17.3.6  JDBC执行语句:SimpleStatementHandler#query()    455
17.3.7  结果集处理:DefaultResultSetHandler#handlerResultSets()    455
17.4  DML语句是如何执行的    460
17.4.1  操作接口    460
17.4.2  关键时序    460
17.4.3  程序执行更新的入口:DefaultSqlSession#update()    461
17.4.4  执行器执行方法:Executor#update()    461
17.4.5  SQL语句执行:SimpleStatementHandler#update()    464
17.4.6  结果集主键逻辑:Jdbc3KeyGenerator#processAfter()    464
17.5  小结    466
第18章  专题特性解析    467
18.1  动态SQL支持    467
18.1.1  XmlScriptBuilder解析配置    467
18.1.2  NodeHandler构建SqlNode树    468
18.1.3  SqlNode处理SQL语句    471
18.2  MyBatis的缓存支持    477
18.2.1  本地缓存    478
18.2.2  二级缓存    482
18.3  结果集支持:Object、List、Map和Cursor    491
18.4  自定义扩展点及接口    496
第19章  作为中间件如何承上启下    498
19.1  MyBatis与底层的JDBC    498
19.1.1  java.sql.DataSource    498
19.1.2  java.sql.Connection    499
19.1.3  java.sql.Statement    500
19.1.4  java.sql.Resultset    502
19.2  MyBatis的主流集成方式    502
19.2.1  mybatis-spring简介    502
19.2.2  Spring对JDBC的支持    502
19.2.3  mybatis-spring与Spring    504




相關書籍

Programming F# 3.0, 2/e (Paperback)

作者 Chris Smith

2019-01-31

Java 併發編程:核心方法與框架 (Java Concurrent Programming Core Method and Frameworks)

作者 高洪岩

2019-01-31

RxJava 2.x 實戰

作者 沈哲

2019-01-31