Spring技术内幕:深入解析Spring架构与计原理 预售商品(第2版)

Spring技术内幕:深入解析Spring架构与计原理 预售商品(第2版)
作 者: 计文柯
出版社: 机械工业出版社
丛编项:
版权说明: 本书为出版图书,暂不支持在线阅读,请支持正版图书
标 签: J2EE
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  计文柯:资深软件开发专家和项目经理,拥有10余年业界经验,对Spring等开源软件的应用和实现原理有深入研究和独到见解。产品研发和项目管理经验丰富,曾就职于华为、摩托罗拉等知名企业和硅谷移动互联网创业公司,在软件工程和项目管理方面积累了大量最佳实践。现与同伴一起创立并运营深圳云果科技,专注于云计算解决方案的研究与实施。

内容简介

《Spring技术内幕:深入解析Spring架构与设计原理(第2版)》是国内唯一一本系统分析Spring源代码的著作,也是Spring领域的问鼎之作,由业界拥有10余年开发经验的资深Java专家亲自执笔,Java开发者社区和Spring开发者社区联袂推荐。本书第1版不仅在内容上获得了读者的广泛好评,而且在销量上也摘取了同类书的桂冠,曾经一度掀起Java类图书的销售热潮。第2版不仅继承了第1版在内容组织和写作方式上的优点,而且还根据广大读者的反馈改进了若干细节上的不足。更为重要的是,结合Spring的最新版本对过时的内容进行了更新,并增加了大量新内容,使本书更趋近于完美。《Spring技术内幕:深入解析Spring架构与设计原理(第2版)》从源代码的角度对Spring的内核和各个主要功能模块的架构、设计和实现原理进行了深入剖析。你不仅能从本书中参透Spring框架的优秀架构和设计思想,还能从Spring优雅的实现源码中一窥Java语言的精髓。本书在开篇之前对Spring的设计理念和整体架构进行了全面的介绍,能让读者从宏观上厘清Spring各个功能模块之间的关系;第一部分详细分析了Spring的核心:IoC容器和AOP的实现,能帮助读者了解Spring的运行机制;第二部分深入阐述了各种基于IoC容器和AOP的Java EE组件在Spring中的实现原理;第三部分讲述了ACEGI安全框架、DM模块以及Flex模块等基于Spring的典型应用的设计与实现。无论你是Java程序员、Spring开发者,还是平台开发人员、系统架构师,抑或是对开源软件源代码着迷的代码狂人,都能从本书中受益。

图书目录

前言

第1章 Spring的设计理念和整体架构 / 1

1.1 Spring的各个子项目 / 2

1.2 Spring的设计目标 / 5

1.3 Spring的整体架构 / 7

1.4 Spring的应用场景 / 10

1.5 小结 / 12

第一部分 Spring核心实现篇

第2章 Spring Framework的核心:IoC容器的实现 / 16

2.1 Spring IoC容器概述 / 17

2.1.1 IoC容器和依赖反转模式 / 17

2.1.2 Spring IoC的应用场景 / 18

2.2 IoC容器系列的设计与实现:BeanFactory和ApplicationContext / 19

2.2.1 Spring的IoC容器系列 / 19

2.2.2 Spring IoC容器的设计 / 21

2.3 IC容器的初始化过程 / 28

2.3.1 BeanDefinition的Resource定位 / 29

2.3.2 BeanDefinition的载入和解析 / 37

2.3.3 BeanDefinition在IoC容器中的注册 / 52

2.4 IoC容器的依赖注入 / 54

2.5 容器其他相关特性的设计与实现 / 75

2.5.1 ApplicationContext和Bean的初始化及销毁 / 75

2.5.2 lazy-init属性和预实例化 / 81

2.5.3 FactoryBean的实现 / 82

2.5.4 BeanPostProcessor的实现 / 85

2.5.5 autowiring(自动依赖装配)的实现 / 88

2.5.6 Bean的依赖检查 / 90

2.5.7 Bean对IoC容器的感知 / 91

2.6 小结 / 92

第3章 Spring AOP的实现 / 94

3.1 Spring AOP概述 / 95

3.1.1 AOP概念回顾 / 95

3.1.2 Advice通知 / 98

3.1.3 Pointcut切点 / 102

3.1.4 Advisor通知器 / 105

3.2 Spring AOP的设计与实现 / 106

3.2.1 JVM的动态代理特性 / 106

3.2.2 Spring AOP的设计分析 / 108

3.2.3 Spring AOP的应用场景 / 108

3.3 建立AopProxy代理对象 / 109

3.3.1 设计原理 / 109

3.3.2 配置ProxyFactoryBean / 110

3.3.3 ProxyFactoryBean生成AopProxy代理对象 / 111

3.3.4 JDK生成AopProxy代理对象 / 116

3.3.5 CGLIB生成AopProxy代理对象 / 117

3.4 Spring AOP拦截器调用的实现 / 119

3.4.1 设计原理 / 119

3.4.2 JdkDynamicAopProxy的invoke拦截 / 120

3.4.3 Cglib2AopProxy的intercept拦截 / 121

3.4.4 目标对象方法的调用 / 122

3.4.5 AOP拦截器链的调用 / 123

3.4.6 配置通知器 / 124

3.4.7 Advice通知的实现 / 129

3.4.8 ProxyFactory实现AOP / 136

3.5 Spring AOP的高级特性 / 138

3.6 小结 / 140

第二部分 Spring组件实现篇

第4章 Spring MVC与Web环境 / 145

4.1 Spring MVC概述 / 146

4.2 Web环境中的Spring MVC / 148

4.3 上下文在Web容器中的启动 / 149

4.3.1 IoC容器启动的基本过程 / 149

4.3.2 Web容器中的上下文设计 / 151

4.3.3 ContextLoader的设计与实现 / 154

4.4 Spring MVC的设计与实现 / 158

4.4.1 Spring MVC的应用场景 / 158

4.4.2 Spring MVC设计概览 / 158

4.4.3 DispatcherServlet的启动和初始化 / 160

4.4.4 MVC处理HTTP分发请求 / 166

4.5 Spring MVC视图的呈现 / 178

4.5.1 DispatcherServlet视图呈现的设计 / 178

4.5.2 JSP视图的实现 / 182

4.5.3 ExcelView的实现 / 185

4.5.4 PDF视图的实现 / 187

4.6 小结 / 189

第5章 数据库操作组件的实现 / 191

5.1 Spring JDBC的设计与实现 / 192

5.1.1 应用场景 / 192

5.1.2 设计概要 / 192

5.2 Spring JDBC中模板类的设计与实现 / 193

5.2.1 设计原理 / 193

5.2.2 JdbcTemplate的基本使用 / 193

5.2.3 JdbcTemplate的execute实现 / 194

5.2.4 JdbcTemplate的query实现 / 196

5.2.5 使用数据库Connection / 197

5.3 Spring JDBC中RDBMS操作对象的实现 / 199

5.3.1 SqlQuery的实现 / 200

5.3.2 SqlUpdate的实现 / 204

5.3.3 SqlFunction / 206

5.4 Spring ORM的设计与实现 / 208

5.4.1 应用场景 / 208

5.4.2 设计概要 / 208

5.5 Spring驱动Hibernate的设计与实现 / 209

5.5.1 设计原理 / 210

5.5.2 Hibernate的SessionFactory / 210

5.5.3 HibernateTemplate的实现 / 215

5.5.4 Session的管理 / 219

5.6 Spring驱动iBatis的设计与实现 / 222

5.6.1 设计原理 / 222

5.6.2 创建SqlMapClient / 222

5.6.3 SqlMapClientTemplate的实现 / 224

5.7 小结 / 227

第6章 Spring事务处理的实现 / 228

6.1 Spring与事务处理 / 229

6.2 Spring事务处理的设计概览 / 229

6.3 Spring事务处理的应用场景 / 230

6.4 Spring声明式事务处理 / 231

6.4.1 设计原理与基本过程 / 231

6.4.2 实现分析 / 231

6.5 Spring事务处理的设计与实现 / 241

6.5.1 Spring事务处理的编程式使用 / 241

6.5.2 事务的创建 / 242

6.5.3 事务的挂起 / 249

6.5.4 事务的提交 / 251

6.5.5 事务的回滚 / 253

6.6 Spring事务处理器的设计与实现 / 255

6.6.1 Spring事务处理的应用场景 / 255

6.6.2 DataSourceTransactionManager的实现 / 256

6.6.3 HibernateTransactionManager的实现 / 259

6.7 小结 / 265

第7章 Spring远端调用的实现 / 267

7.1 Spring远端调用的应用场景 / 268

7.2 Spring远端调用的设计概览 / 268

7.3 Spring远端调用的实现 / 271

7.3.1 Spring HTTP调用器的实现 / 271

7.3.2 Spring Hession/Burlap的实现原理 / 282

7.3.3 Spring RMI的实现 / 295

7.4 小结 / 302

第三部分 Spring应用实现篇

第8章 安全框架ACEGI的设计与实现 / 307

8.1 Spring ACEGI安全框架概述 / 308

8.1.1 概述 / 308

8.1.2 设计原理与基本实现过程 / 308

8.1.3 ACEGI的Bean配置 / 309

8.2 配置Spring ACEGI / 310

8.3 ACEGI的Web过滤器实现 / 313

8.4 ACEGI验证器的实现 / 315

8.4.1 AuthenticationManager的authenticate / 315

8.4.2 DaoAuthenticationProvider的实现 / 318

8.4.3 读取数据库用户信息 / 320

8.4.4 完成用户信息的对比验证 / 323

8.5 ACEGI授权器的实现 / 324

8.5.1 与Web环境的接口FilterSecurityInterceptor / 324

8.5.2 授权器的实现 / 327

8.5.3 投票器的实现 / 329

8.6 小结 / 330

第9章 Spring DM模块的设计与实现 / 332

9.1 Spring DM模块的应用场景 / 333

9.2 Spring DM的应用过程 / 334

9.3 Spring DM设计与实现 / 338

9.4 小结 / 348

第10章 Spring Flex的设计与实现 / 350

10.1 Spring Flex模块的应用场景 / 351

10.2 Spring Flex的应用过程 / 353

10.3 Spring Flex的设计与实现 / 355

10.4 小结 / 362

附录A Spring项目的源代码环境 / 363

附录B 构建Spring项目的发布包 / 378

附录C 使用Spring IDE / 381

附录D Spring Pet Clinic应用实例 / 385