云时代架构互联网轻量级SSM框架解密:SPRING.SPRING MVC.MYBATIS源码深度剖析
- ISBN:9787121359545
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:其他
- 页数:528
- 出版时间:2019-01-01
- 条形码:9787121359545 ; 978-7-121-35954-5
本书特色
适读人群 :本书对于互联网从业者,或者传统行业的IT工程师、架构师、技术经理、技术总监,以及想深耕IT行业的技术人员都有很强的借鉴性和实用价值。 Java EE互联网轻量级SSM框架(Spring MVC+Spring+MyBatis)源码新鲜解密! 本书后援会大咖有: 《深入分布式缓存》作者右军 公众号“程序员小灰”作者魏梦舒 Spring Cloud中国创始人、《重新定义Spring Cloud实战》作者许进 《程序员的成长课》作者安晓辉 《深入理解Spring Cloud与微服务构建》作者方志朋 苏宁易购高级工程师汪华风 百度研发工程师孟一凡 本书为云时代架构系列丛书暨《分布式服务架构:原理、设计与实战》《可伸缩服务架构:框架与中间件》之后的又一惊世力作!
内容简介
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
作者简介
李艳鹏,高级技术专家,著有《分布式服务架构:原理、设计与实战》和《可伸缩服务架构:框架与中间件》,是“云时代架构”技术社区的发起者,曾经在易宝支付、花旗银行、甲骨文、路透社、新浪微博等大型机构中担任技术负责人和首席架构师,曾专注于大规模高并发的线上和线下支付平台的应用架构和技术架构的规划与落地,负责交易、支付、渠道、出款、风控、对账等核心支付系统的设计与实现,在移动支付、聚合支付、合规账户、扫码支付、标记化支付等业务场景上有产品应用架构规划与落地的实践经验,现聚焦于区块链创新应用技术的研发领域。 曲源,资深Java开发者,曾任美图技术经理、易宝支付交易系统技术负责人、当网Java工程师。在电商、支付公司从业近10年,熟悉 相关领域的架构规划和系统研发。 宋杨,爱奇艺技术产品中心架构师,从事互联网支付行业一线开发、架构等工作,熟悉互联网通用技术栈。
-
全图解零基础word excel ppt 应用教程
¥15.6¥48.0 -
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
硅谷之火-人与计算机的未来
¥12.7¥39.8 -
机器学习
¥59.4¥108.0 -
深度学习的数学
¥43.5¥69.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥37.7¥65.0 -
情感计算
¥66.8¥89.0 -
LINUX企业运维实战(REDIS+ZABBIX+NGINX+PROMETHEUS+GRAFANA+LNMP)
¥48.3¥69.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
LINUX实战——从入门到精通
¥48.3¥69.0 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
数据驱动的工业人工智能:建模方法与应用
¥68.3¥99.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥76.3¥109.0 -
UG NX 12.0数控编程
¥24.8¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
UN NX 12.0多轴数控编程案例教程
¥24.3¥38.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
Go 语言运维开发 : Kubernetes 项目实战
¥38.7¥79.0