《Spring源碼深度解析》不僅介紹了使用Spring框架開(kāi)發(fā)項(xiàng)目必須掌握的核心概念,還指導(dǎo)讀者如何使用Spring框架編寫企業(yè)級(jí)應(yīng)用,并針對(duì)在編寫代碼的過(guò)程中如何優(yōu)化代碼、如何使得代碼高效給出切實(shí)可行的建議,從而幫助讀者全面提升實(shí)戰(zhàn)能力。
《Spring源碼深度解析》語(yǔ)言簡(jiǎn)潔,示例豐富,可幫助讀者迅速掌握使用Spring進(jìn)行開(kāi)發(fā)所需的各種技能!禨pring源碼深度解析》適合于已具有一定Java編程基礎(chǔ)的讀者,以及在Java平臺(tái)下進(jìn)行各類軟件開(kāi)發(fā)的開(kāi)發(fā)人員、測(cè)試人員等。
spring源碼深度解析目錄
第一部分 核心實(shí)現(xiàn)
第1章 Spring整體架構(gòu)和環(huán)境搭建 2
1.1 Spring的整體架構(gòu) 2
1.2 環(huán)境搭建 4
1.2.1 安裝GitHub 4
1.2.2 安裝Gradle 5
1.2.3 下載Spring 6
第2章 容器的基本實(shí)現(xiàn) 10
2.1 容器基本用法 10
2.2 功能分析 11
2.3 工程搭建 12
2.4 Spring的結(jié)構(gòu)組成 13
2.4.1 beans包的層級(jí)結(jié)構(gòu) 13
2.4.2 核心類介紹 13
2.5 容器的基礎(chǔ)XmlBeanFactory 17
2.5.1 配置文件封裝 18
2.5.2 加載Bean 21
2.6 獲取XML的驗(yàn)證模式 24
2.6.1 DTD與XSD區(qū)別 24
2.6.2 驗(yàn)證模式的讀取 26
2.7 獲取Document 28
2.7.1 EntityResolver用法 29
2.8 解析及注冊(cè)BeanDefinitions 31
2.8.1 profile屬性的使用 32
2.8.2 解析并注冊(cè)BeanDefinition 33
第3章 默認(rèn)標(biāo)簽的解析 35
3.1 bean標(biāo)簽的解析及注冊(cè) 35
3.1.1 解析BeanDefinition 37
3.1.2 AbstractBeanDefinition屬性 55
3.1.3 解析默認(rèn)標(biāo)簽中的自定義標(biāo)簽元素 58
3.1.4 注冊(cè)解析的BeanDefinition 60
3.1.5 通知監(jiān)聽(tīng)器解析及注冊(cè)完成 63
3.2 alias標(biāo)簽的解析 63
3.3 import標(biāo)簽的解析 65
3.4 嵌入式beans標(biāo)簽的解析 67
第4章 自定義標(biāo)簽的解析 68
4.1 自定義標(biāo)簽使用 69
4.2 自定義標(biāo)簽解析 71
4.2.1 獲取標(biāo)簽的命名空間 72
4.2.2 提取自定義標(biāo)簽處理器 72
4.2.3 標(biāo)簽解析 74
第5章 bean的加載 78
5.1 FactoryBean的使用 83
5.2 緩存中獲取單例bean 85
5.3 從bean的實(shí)例中獲取對(duì)象 86
5.4 獲取單例 90
5.5 準(zhǔn)備創(chuàng)建bean 92
5.5.1 處理ovverride屬性 93
5.5.2 實(shí)例化的前置處理 94
5.6 循環(huán)依賴 96
5.6.1 什么是循環(huán)依賴 96
5.6.2 Spring如何解決循環(huán)依賴 96
5.7 創(chuàng)建bean 100
5.7.1 創(chuàng)建bean的實(shí)例 103
5.7.2 記錄創(chuàng)建bean的ObjectFactory 112
5.7.3 屬性注入 115
5.7.4 初始化bean 124
5.7.5 注冊(cè)DisposableBean 128
第6章 容器的功能擴(kuò)展 129
6.1 設(shè)置配置路徑 130
6.2 擴(kuò)展功能 130
6.3 環(huán)境準(zhǔn)備 132
6.4 加載BeanFactory 133
6.4.1 定制BeanFactory 135
6.4.2 加載BeanDefinition 136
6.5 功能擴(kuò)展 137
6.5.1 增加SPEL語(yǔ)言的支持 138
6.5.2 增加屬性注冊(cè)編輯器 139
6.5.3 添加ApplicationContext AwareProcessor處理器 144
6.5.4 設(shè)置忽略依賴 146
6.5.5 注冊(cè)依賴 146
6.6 BeanFactory的后處理 146
6.6.1 激活注冊(cè)的BeanFactory PostProcessor 147
6.6.2 注冊(cè)BeanPostProcessor 153
6.6.3 初始化消息資源 156
6.6.4 初始化ApplicationEvent Multicaster 159
6.6.5 注冊(cè)監(jiān)聽(tīng)器 161
6.7 初始化非延遲加載單例 162
6.8 finishRefresh 165
第7章 AOP 167
7.1 動(dòng)態(tài)AOP使用示例 167
7.2 動(dòng)態(tài)AOP自定義標(biāo)簽 169
7.2.1 注冊(cè)AnnotationAwareAspectJ AutoProxyCreator 170
7.3 創(chuàng)建AOP代理 173
7.3.1 獲取增強(qiáng)器 176
7.3.2 尋找匹配的增強(qiáng)器 186
7.3.3 創(chuàng)建代理 187
7.4 靜態(tài)AOP使用示例 201
7.5 創(chuàng)建AOP靜態(tài)代理 203
7.5.1 Instrumentation使用 203
7.5.2 自定義標(biāo)簽 207
7.5.3 織入 209
第二部分 企業(yè)應(yīng)用
第8章 數(shù)據(jù)庫(kù)連接JDBC 214
8.1 Spring連接數(shù)據(jù)庫(kù)程序?qū)崿F(xiàn)(JDBC) 215
8.2 save/update功能的實(shí)現(xiàn) 217
8.2.1 基礎(chǔ)方法execute 219
8.2.2 Update中的回調(diào)函數(shù) 223
8.3 query功能的實(shí)現(xiàn) 225
8.4 queryForObject 229
第9章 整合MyBatis 231
9.1 MyBatis獨(dú)立使用 231
9.2 Spring整合MyBatis 235
9.3 源碼分析 237
9.3.1 sqlSessionFactory創(chuàng)建 237
9.3.2 MapperFactoryBean的創(chuàng)建 241
9.3.3 MapperScannerConfigurer 244
第10章 事務(wù) 254
10.1 JDBC方式下的事務(wù)使用 示例 254
10.2 事務(wù)自定義標(biāo)簽 257
10.2.1 注冊(cè)InfrastructureAdvisor AutoProxyCreator 257
10.2.2 獲取對(duì)應(yīng)class/method的增強(qiáng)器 261
10.3 事務(wù)增強(qiáng)器 269
10.3.1 創(chuàng)建事務(wù) 271
10.3.2 回滾處理 281
10.3.3 事務(wù)提交 287
第11章 SpringMVC 291
11.1 SpringMVC快速體驗(yàn) 291
11.2 ContextLoaderListener 295
11.2.1 ServletContextListener的使用 295
11.2.2 Spring中的ContextLoader Listener 296
11.3 DispatcherServlet 300
11.3.1 servlet的使用 301
11.3.2 DispatcherServlet的初始化 302
11.3.3 WebApplicationContext的初始化 304
11.4 DispatcherServlet的邏輯處理 320
11.4.1 MultipartContent類型的request處理 326
11.4.2 根據(jù)request信息尋找對(duì)應(yīng)的Handler 327
11.4.3 沒(méi)找到對(duì)應(yīng)的Handler的錯(cuò)誤處理 331
11.4.4 根據(jù)當(dāng)前Handler尋找對(duì)應(yīng)的HandlerAdapter 331
11.4.5 緩存處理 332
11.4.6 HandlerInterceptor的處理 333
11.4.7 邏輯處理 334
11.4.8 異常視圖的處理 334
11.4.9 根據(jù)視圖跳轉(zhuǎn)頁(yè)面 335
第12章 遠(yuǎn)程服務(wù) 340
12.1 RMI 340
12.1.1 使用示例 340
12.1.2 服務(wù)端實(shí)現(xiàn) 342
12.1.3 客戶端實(shí)現(xiàn) 350
12.2 HttpInvoker 355
12.2.1 使用示例 356
12.2.2 服務(wù)端實(shí)現(xiàn) 357
12.2.3 客戶端實(shí)現(xiàn) 361
第13章 Spring消息 367
13.1 JMS的獨(dú)立使用 367
13.2 Spring整合ActiveMQ 369
13.3 源碼分析 371
13.3.1 JmsTemplate 372
13.3.2 監(jiān)聽(tīng)器容器 376
- PC官方版
- 安卓官方手機(jī)版
- IOS官方手機(jī)版