目錄
前言
第1章 spring的設(shè)計(jì)理念和整體架構(gòu) / 1
1.1 spring的各個(gè)子項(xiàng)目 / 2
1.2 spring的設(shè)計(jì)目標(biāo) / 5
1.3 spring的整體架構(gòu) / 7
1.4 spring的應(yīng)用場(chǎng)景 / 10
1.5 小結(jié) / 12
第一部分 spring核心實(shí)現(xiàn)篇
第2章 spring framework的核心:ioc容器的實(shí)現(xiàn) / 16
2.1 spring ioc容器概述 / 17
2.1.1 ioc容器和依賴(lài)反轉(zhuǎn)模式 / 17
2.1.2 spring ioc的應(yīng)用場(chǎng)景 / 18
2.2 ioc容器系列的設(shè)計(jì)與實(shí)現(xiàn):beanfactory和applicationcontext / 19
2.2.1 spring的ioc容器系列 / 19
2.2.2 spring ioc容器的設(shè)計(jì) / 21
2.3 ic容器的初始化過(guò)程 / 28
2.3.1 beandefinition的resource定位 / 29
2.3.2 beandefinition的載入和解析 / 37
2.3.3 beandefinition在ioc容器中的注冊(cè) / 52
.2.4 ioc容器的依賴(lài)注入 / 54
2.5 容器其他相關(guān)特性的設(shè)計(jì)與實(shí)現(xiàn) / 75
2.5.1 applicationcontext和bean的初始化及銷(xiāo)毀 / 75
2.5.2 lazy-init屬性和預(yù)實(shí)例化 / 81
2.5.3 factorybean的實(shí)現(xiàn) / 82
2.5.4 beanpostprocessor的實(shí)現(xiàn) / 85
2.5.5 autowiring(自動(dòng)依賴(lài)裝配)的實(shí)現(xiàn) / 88
2.5.6 bean的依賴(lài)檢查 / 90
2.5.7 bean對(duì)ioc容器的感知 / 91
2.6 小結(jié) / 92
第3章 spring aop的實(shí)現(xiàn) / 94
3.1 spring aop概述 / 95
3.1.1 aop概念回顧 / 95
3.1.2 advice通知 / 98
3.1.3 pointcut切點(diǎn) / 102
3.1.4 advisor通知器 / 105
3.2 spring aop的設(shè)計(jì)與實(shí)現(xiàn) / 106
3.2.1 jvm的動(dòng)態(tài)代理特性 / 106
3.2.2 spring aop的設(shè)計(jì)分析 / 108
3.2.3 spring aop的應(yīng)用場(chǎng)景 / 108
3.3 建立aopproxy代理對(duì)象 / 109
3.3.1 設(shè)計(jì)原理 / 109
3.3.2 配置proxyfactorybean / 110
3.3.3 proxyfactorybean生成aopproxy代理對(duì)象 / 111
3.3.4 jdk生成aopproxy代理對(duì)象 / 116
3.3.5 cglib生成aopproxy代理對(duì)象 / 117
3.4 spring aop攔截器調(diào)用的實(shí)現(xiàn) / 119
3.4.1 設(shè)計(jì)原理 / 119
3.4.2 jdkdynamicaopproxy的invoke攔截 / 120
3.4.3 cglib2aopproxy的intercept攔截 / 121
3.4.4 目標(biāo)對(duì)象方法的調(diào)用 / 122
3.4.5 aop攔截器鏈的調(diào)用 / 123
3.4.6 配置通知器 / 124
3.4.7 advice通知的實(shí)現(xiàn) / 129
3.4.8 proxyfactory實(shí)現(xiàn)aop / 136
3.5 spring aop的高級(jí)特性 / 138
3.6 小結(jié) / 140
第二部分 spring組件實(shí)現(xiàn)篇
第4章 spring mvc與web環(huán)境 / 145
4.1 spring mvc概述 / 146
4.2 web環(huán)境中的spring mvc / 148
4.3 上下文在web容器中的啟動(dòng) / 149
4.3.1 ioc容器啟動(dòng)的基本過(guò)程 / 149
4.3.2 web容器中的上下文設(shè)計(jì) / 151
4.3.3 contextloader的設(shè)計(jì)與實(shí)現(xiàn) / 154
4.4 spring mvc的設(shè)計(jì)與實(shí)現(xiàn) / 158
4.4.1 spring mvc的應(yīng)用場(chǎng)景 / 158
4.4.2 spring mvc設(shè)計(jì)概覽 / 158
4.4.3 dispatcherservlet的啟動(dòng)和初始化 / 160
4.4.4 mvc處理http分發(fā)請(qǐng)求 / 166
4.5 spring mvc視圖的呈現(xiàn) / 178
4.5.1 dispatcherservlet視圖呈現(xiàn)的設(shè)計(jì) / 178
4.5.2 jsp視圖的實(shí)現(xiàn) / 182
4.5.3 excelview的實(shí)現(xiàn) / 185
4.5.4 pdf視圖的實(shí)現(xiàn) / 187
4.6 小結(jié) / 189
第5章 數(shù)據(jù)庫(kù)操作組件的實(shí)現(xiàn) / 191
5.1 spring jdbc的設(shè)計(jì)與實(shí)現(xiàn) / 192
5.1.1 應(yīng)用場(chǎng)景 / 192
5.1.2 設(shè)計(jì)概要 / 192
5.2 spring jdbc中模板類(lèi)的設(shè)計(jì)與實(shí)現(xiàn) / 193
5.2.1 設(shè)計(jì)原理 / 193
5.2.2 jdbctemplate的基本使用 / 193
5.2.3 jdbctemplate的execute實(shí)現(xiàn) / 194
5.2.4 jdbctemplate的query實(shí)現(xiàn) / 196
5.2.5 使用數(shù)據(jù)庫(kù)connection / 197
5.3 spring jdbc中rdbms操作對(duì)象的實(shí)現(xiàn) / 199
5.3.1 sqlquery的實(shí)現(xiàn) / 200
5.3.2 sqlupdate的實(shí)現(xiàn) / 204
5.3.3 sqlfunction / 206
5.4 spring orm的設(shè)計(jì)與實(shí)現(xiàn) / 208
5.4.1 應(yīng)用場(chǎng)景 / 208
5.4.2 設(shè)計(jì)概要 / 208
5.5 spring驅(qū)動(dòng)hibernate的設(shè)計(jì)與實(shí)現(xiàn) / 209
5.5.1 設(shè)計(jì)原理 / 210
5.5.2 hibernate的sessionfactory / 210
5.5.3 hibernatetemplate的實(shí)現(xiàn) / 215
5.5.4 session的管理 / 219
5.6 spring驅(qū)動(dòng)ibatis的設(shè)計(jì)與實(shí)現(xiàn) / 222
5.6.1 設(shè)計(jì)原理 / 222
5.6.2 創(chuàng)建sqlmapclient / 222
5.6.3 sqlmapclienttemplate的實(shí)現(xiàn) / 224
5.7 小結(jié) / 227
第6章 spring事務(wù)處理的實(shí)現(xiàn) / 228
6.1 spring與事務(wù)處理 / 229
6.2 spring事務(wù)處理的設(shè)計(jì)概覽 / 229
6.3 spring事務(wù)處理的應(yīng)用場(chǎng)景 / 230
6.4 spring聲明式事務(wù)處理 / 231
6.4.1 設(shè)計(jì)原理與基本過(guò)程 / 231
6.4.2 實(shí)現(xiàn)分析 / 231
6.5 spring事務(wù)處理的設(shè)計(jì)與實(shí)現(xiàn) / 241
6.5.1 spring事務(wù)處理的編程式使用 / 241
6.5.2 事務(wù)的創(chuàng)建 / 242
6.5.3 事務(wù)的掛起 / 249
6.5.4 事務(wù)的提交 / 251
6.5.5 事務(wù)的回滾 / 253
6.6 spring事務(wù)處理器的設(shè)計(jì)與實(shí)現(xiàn) / 255
6.6.1 spring事務(wù)處理的應(yīng)用場(chǎng)景 / 255
6.6.2 datasourcetransactionmanager的實(shí)現(xiàn) / 256
6.6.3 hibernatetransactionmanager的實(shí)現(xiàn) / 259
6.7 小結(jié) / 265
第7章 spring遠(yuǎn)端調(diào)用的實(shí)現(xiàn) / 267
7.1 spring遠(yuǎn)端調(diào)用的應(yīng)用場(chǎng)景 / 268
7.2 spring遠(yuǎn)端調(diào)用的設(shè)計(jì)概覽 / 268
7.3 spring遠(yuǎn)端調(diào)用的實(shí)現(xiàn) / 271
7.3.1 spring http調(diào)用器的實(shí)現(xiàn) / 271
7.3.2 spring hession/burlap的實(shí)現(xiàn)原理 / 282
7.3.3 spring rmi的實(shí)現(xiàn) / 295
7.4 小結(jié) / 302
第三部分 spring應(yīng)用實(shí)現(xiàn)篇
第8章 安全框架acegi的設(shè)計(jì)與實(shí)現(xiàn) / 307
8.1 spring acegi安全框架概述 / 308
8.1.1 概述 / 308
8.1.2 設(shè)計(jì)原理與基本實(shí)現(xiàn)過(guò)程 / 308
8.1.3 acegi的bean配置 / 309
8.2 配置spring acegi / 310
8.3 acegi的web過(guò)濾器實(shí)現(xiàn) / 313
8.4 acegi驗(yàn)證器的實(shí)現(xiàn) / 315
8.4.1 authenticationmanager的authenticate / 315
8.4.2 daoauthenticationprovider的實(shí)現(xiàn) / 318
8.4.3 讀取數(shù)據(jù)庫(kù)用戶(hù)信息 / 320
8.4.4 完成用戶(hù)信息的對(duì)比驗(yàn)證 / 323
8.5 acegi授權(quán)器的實(shí)現(xiàn) / 324
8.5.1 與web環(huán)境的接口filtersecurityinterceptor / 324
8.5.2 授權(quán)器的實(shí)現(xiàn) / 327
8.5.3 投票器的實(shí)現(xiàn) / 329
8.6 小結(jié) / 330
第9章 spring dm模塊的設(shè)計(jì)與實(shí)現(xiàn) / 332
9.1 spring dm模塊的應(yīng)用場(chǎng)景 / 333
9.2 spring dm的應(yīng)用過(guò)程 / 334
9.3 spring dm設(shè)計(jì)與實(shí)現(xiàn) / 338
9.4 小結(jié) / 348
第10章 spring flex的設(shè)計(jì)與實(shí)現(xiàn) / 350
10.1 spring flex模塊的應(yīng)用場(chǎng)景 / 351
10.2 spring flex的應(yīng)用過(guò)程 / 353
10.3 spring flex的設(shè)計(jì)與實(shí)現(xiàn) / 355
10.4 小結(jié) / 362
附錄a spring項(xiàng)目的源代碼環(huán)境 / 363
附錄b 構(gòu)建spring項(xiàng)目的發(fā)布包 / 378
附錄c 使用spring ide / 381
附錄d spring pet clinic應(yīng)用實(shí)例 / 385