《互联网轻量级SSM框架解密》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:李艳鹏,曲源,宋杨编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2019
  • ISBN:9787121359545
  • 页数:512 页
图书介绍:Spring是一个优秀的轻量级企业应用开发框架,是Java开发中最流行的工具之一,Spring在Java企业开发中具有举足轻重的作用。Spring是基于 JavaBeans 的控制翻转(Inversion of Control,IoC)原则进行配置管理的,使得应用程序的组建更加快捷简易,并且对AOP程序设计有较好的支持,使程序接口清晰易读,并且通过AOP实现了声明式的安全和事物。Spring的抽象的数据存取层次支持多种ORM框架。并且对J2EE的其他技术提供了简单而有效的接口,使Spring能够和任何J2EE进行无缝的结合。除此之外,Spring Web MVC的体系架构更加优秀。本书从Spring Web MVC的架构原理和设计思想进行了全面剖析,从源代码分析入手,让读者更深入、更彻底地认识Spring,领略Spring的架构之美和设计之美, 从而使得我们在利用Spring进行开发时,不仅能知其然,还能知其所以然,从本质上提升我们对Spring的理解和开发水平。这不是一本Spring初学者的使用教材,也不是一本Spring应用教科书,这是一本适合于想要深入研究和学习Spring实现和

第1篇 深入剖析Spring源码 2

第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源码 138

第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源码 388

第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