手寫(xiě)Spring:漸進(jìn)式源碼實(shí)踐
定 價(jià):128 元
- 作者:付政委
- 出版時(shí)間:2022/10/1
- ISBN:9787121444203
- 出 版 社:電子工業(yè)出版社
- 中圖法分類(lèi):TP312.8
- 頁(yè)碼:312
- 紙張:
- 版次:01
- 開(kāi)本:16開(kāi)
本書(shū)基于Spring框架的核心邏輯,通過(guò)實(shí)現(xiàn)簡(jiǎn)化版Spring框架的方式,對(duì)Spring進(jìn)行分析、設(shè)計(jì)和實(shí)踐。本書(shū)以實(shí)踐為核心,摒棄Spring源碼中繁雜的內(nèi)容,選擇框架中的核心邏輯,簡(jiǎn)化代碼實(shí)現(xiàn)過(guò)程,保留核心功能,如IOC、AOP、Bean的生命周期、上下文、作用域、資源處理、JDBC、事務(wù)、開(kāi)發(fā)簡(jiǎn)易版ORM框架、將ORM框架整合到Spring框架中等內(nèi)容的方案設(shè)計(jì)和源碼實(shí)現(xiàn)。在Spring框架功能模塊的開(kāi)發(fā)過(guò)程中,逐步介紹并深入分析其中所涉及的設(shè)計(jì)原則和設(shè)計(jì)模式,使讀者游刃有余地解決在調(diào)試Spring源碼及開(kāi)發(fā)SpringBoot Starter組件時(shí)遇到的問(wèn)題。本書(shū)既可以作為計(jì)算機(jī)相關(guān)行業(yè)研發(fā)人員的輔導(dǎo)書(shū),也可以作為高等院校計(jì)算機(jī)專(zhuān)業(yè)學(xué)生的參考書(shū)。無(wú)論是初學(xué)者,還是中、高級(jí)研發(fā)人員,都能從本書(shū)中獲得啟發(fā)。
付政委(小傅哥)作為一名一線互聯(lián)網(wǎng)Java工程師、架構(gòu)師,曾開(kāi)發(fā)過(guò)交易、營(yíng)銷(xiāo)類(lèi)項(xiàng)目,運(yùn)營(yíng)、活動(dòng)類(lèi)項(xiàng)目,設(shè)計(jì)過(guò)中間件,組織過(guò)系統(tǒng)重構(gòu),編寫(xiě)過(guò)技術(shù)專(zhuān)利。他不僅從事業(yè)務(wù)系統(tǒng)的開(kāi)發(fā)工作,也經(jīng)常做一些字節(jié)碼插樁類(lèi)的設(shè)計(jì)和實(shí)現(xiàn),對(duì)架構(gòu)的設(shè)計(jì)和落地具有豐富的經(jīng)驗(yàn)。他既熱衷于Java語(yǔ)言,也喜歡研究中繼器、I/O板卡、C#和PHP,是一名活躍的技術(shù)“折騰者”。常逛GitHub,樂(lè)于分享技術(shù)文章。沉淀、分享、成長(zhǎng),讓自己和他人都能有所收獲!
目錄
引言 /1
第1章 實(shí)現(xiàn)一個(gè)簡(jiǎn)單的Spring Bean容器 / 7
1.1 容器是什么 / 7
1.2 簡(jiǎn)單容器設(shè)計(jì) / 8
1.3 簡(jiǎn)單容器實(shí)現(xiàn) / 9
1.4 容器使用測(cè)試 / 12
1.5 本章總結(jié) / 13
第2章 實(shí)現(xiàn)Bean對(duì)象的定義、注冊(cè)和獲取 / 14
2.1 容器的思考 / 14
2.2 完善容器設(shè)計(jì) / 15
2.3 完善容器實(shí)現(xiàn) / 16
2.4 Bean 生命周期測(cè)試 / 22
2.5 本章總結(jié) / 24
第3章 基于Cglib實(shí)現(xiàn)含構(gòu)造函數(shù)的類(lèi)實(shí)例化策略 / 25
3.1 實(shí)例化問(wèn)題 / 25
3.2 實(shí)例化策略設(shè)計(jì) / 26
3.3 實(shí)例化策略代碼實(shí)現(xiàn) / 27
3.4 構(gòu)造函數(shù)對(duì)象測(cè)試 / 32
3.5 本章總結(jié) / 35
第4章 注入屬性和依賴(lài)對(duì)象 / 36
4.1 Bean對(duì)象拆解思考 / 36
4.2 屬性填充設(shè)計(jì) / 37
4.3 屬性填充實(shí)現(xiàn) / 38
4.4 注入屬性測(cè)試 / 43
4.5 本章總結(jié) / 46
第5章 資源加載器解析文件注冊(cè)對(duì)象 / 47
5.1 對(duì)象創(chuàng)建問(wèn)題 / 47
5.2 資源加載和解析設(shè)計(jì) / 48
5.3 資源加載和解析設(shè)計(jì)實(shí)現(xiàn) / 49
5.4 配置Bean對(duì)象注冊(cè)測(cè)試 / 60
5.5 本章總結(jié) / 64
第6 章 實(shí)現(xiàn)應(yīng)用上下文 / 65
6.1 分治Bean 對(duì)象功能 / 65
6.2 Bean 對(duì)象擴(kuò)展和上下文設(shè)計(jì) / 66
6.3 Bean 對(duì)象擴(kuò)展和上下文實(shí)現(xiàn) / 68
6.4 應(yīng)用上下文功能測(cè)試 / 79
6.5 本章總結(jié) / 83
第7 章 Bean 對(duì)象的初始化和銷(xiāo)毀/ 84
7.1 容器管理Bean 功能 / 84
7.2 初始化和銷(xiāo)毀設(shè)計(jì) / 85
7.3 初始化和銷(xiāo)毀實(shí)現(xiàn) / 87
7.4 容器功能測(cè)試 / 97
7.5 本章總結(jié) / 99
第8 章 感知容器對(duì)象 / 101
8.1 Spring Bean 容器的功能 / 101
8.2 感知容器設(shè)計(jì) / 102
8.3 感知容器實(shí)現(xiàn) / 103
8.4 Aware 接口的功能測(cè)試 / 111
8.5 本章總結(jié) / 114
第9 章 對(duì)象作用域和FactoryBean/ 117
9.1 Bean 對(duì)象的來(lái)源和模式 / 117
9.2 FactoryBean 和對(duì)象模式設(shè)計(jì) / 118
9.3 FactoryBean 和對(duì)象模式實(shí)現(xiàn) / 119
9.4 代理Bean 和對(duì)象模式測(cè)試 / 128
9.5 本章總結(jié) / 132
第10 章 容器事件和事件監(jiān)聽(tīng)器 / 134
10.1 運(yùn)用事件機(jī)制降低耦合度 / 134
10.2 事件觀察者設(shè)計(jì) / 135
10.3 事件觀察者實(shí)現(xiàn) / 136
10.4 事件使用測(cè)試 / 146
10.5 本章總結(jié) / 148
第11 章 基于JDK、Cglib 實(shí)現(xiàn)AOP 切面 / 150
11.1 動(dòng)態(tài)代理 / 150
11.2 AOP 切面設(shè)計(jì) / 151
11.3 AOP 切面實(shí)現(xiàn) / 152
11.4 AOP 切面測(cè)試 / 163
11.5 本章總結(jié) / 165
第12 章 把AOP 融入Bean 的生命周期 / 166
12.1 AOP 與框架整合思考 / 166
12.2 AOP 切面設(shè)計(jì) / 167
12.3 AOP 切面實(shí)現(xiàn) / 168
12.4 切面使用測(cè)試 / 176
12.5 本章總結(jié) / 179
第13 章 自動(dòng)掃描注冊(cè)Bean對(duì)象 / 180
13.1 注入對(duì)象完善點(diǎn) / 180
13.2 自動(dòng)掃描注冊(cè)設(shè)計(jì) / 181
13.3 自動(dòng)掃描注冊(cè)實(shí)現(xiàn) / 182
13.4 注冊(cè)Bean 對(duì)象測(cè)試 / 190
13.5 本章總結(jié) / 193
第14 章 通過(guò)注解注入屬性信息 / 194
14.1 引入注入注解 / 194
14.2 注入屬性信息設(shè)計(jì) / 195
14.3 注入屬性信息實(shí)現(xiàn) / 196
14.4 注解使用測(cè)試 / 206
14.5 本章總結(jié) / 208
第15 章 給代理對(duì)象設(shè)置屬性注入 / 210
15.1 代理對(duì)象創(chuàng)建過(guò)程問(wèn)題 / 210
15.2 代理對(duì)象屬性填充設(shè)計(jì) / 211
15.3 代理對(duì)象屬性填充實(shí)現(xiàn) / 212
15.4 代理對(duì)象屬性注入測(cè)試 / 219
15.5 本章總結(jié) / 221
第16 章 通過(guò)三級(jí)緩存解決循環(huán)依賴(lài) / 222
16.1 復(fù)雜對(duì)象的創(chuàng)建思考 / 222
16.2 循環(huán)依賴(lài)設(shè)計(jì) / 223
16.3 循環(huán)依賴(lài)實(shí)現(xiàn) / 227
16.4 循環(huán)依賴(lài)測(cè)試 / 234
16.5 本章總結(jié) / 238
第17 章 數(shù)據(jù)類(lèi)型轉(zhuǎn)換 / 239
17.1 類(lèi)型轉(zhuǎn)換設(shè)計(jì) / 239
17.2 類(lèi)型轉(zhuǎn)換實(shí)現(xiàn) / 240
17.3 類(lèi)型轉(zhuǎn)換測(cè)試 / 249
17.4 本章總結(jié) / 251
第18 章 JDBC 功能整合 / 252
18.1 JdbcTemplate 說(shuō)明 / 252
18.2 整合JDBC 服務(wù)設(shè)計(jì) / 253
18.2 整合 JDBC 服務(wù)開(kāi)發(fā) / 254
18.3 JDBC 功能測(cè)試 / 258
18.4 本章總結(jié) / 260
第19 章 事務(wù)處理 / 261
19.1 了解事務(wù) / 261
19.2 事務(wù)功能設(shè)計(jì) / 262
19.3 事務(wù)功能實(shí)現(xiàn) / 264
19.4 切面事務(wù)測(cè)試 / 272
19.5 本章總結(jié) / 276
第20 章 ORM 框架實(shí)現(xiàn) / 278
20.1 簡(jiǎn)單ORM 框架設(shè)計(jì) / 278
20.2 簡(jiǎn)單ORM 框架實(shí)現(xiàn) / 279
20.3 ORM 框架使用測(cè)試 / 287
20.4 本章總結(jié) / 290
第21 章 將ORM 框架整合到Spring Bean容器中 / 291
21.1 ORM-Spring 整合設(shè)計(jì) / 291
21.2 ORM-Spring 整合實(shí)現(xiàn) / 292
21.3 整合功能驗(yàn)證 / 299
21.4 本章總結(jié) / 302