2019-02-20 Spring技术内幕(第2版)

目录

编辑

前言

第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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容