定 價(jià):¥118.00
作 者: | 周冠亞,黃文毅 |
出版社: | 清華大學(xué)出版社 |
叢編項(xiàng): | |
標(biāo) 簽: | 暫缺 |
ISBN: | 9787302531029 | 出版時(shí)間: | 2019-06-01 | 包裝: | 平裝 |
開本: | 16開 | 頁(yè)數(shù): | 526 | 字?jǐn)?shù): |
第一篇 Spring基礎(chǔ)篇
第1章 環(huán)境搭建 3
1.1 Spring介紹 3
1.1.1 Spring設(shè)計(jì)目標(biāo) 3
1.1.2 Spring各個(gè)子模塊 3
1.1.3 Spring使用場(chǎng)景 4
1.1.4 Spring與Spring MVC的關(guān)系 5
1.1.5 Spring 5高級(jí)特性 5
1.2 環(huán)境準(zhǔn)備 5
1.2.1 安裝JDK 5
1.2.2 安裝IntelliJ IDEA 6
1.2.3 安裝Apache Maven 6
1.2.4 安裝Apache Tomcat 7
1.3 快速搭建Spring 5項(xiàng)目 8
1.3.1 使用IntelliJ IDEA創(chuàng)建Spring 5 + Spring MVC項(xiàng)目 8
1.3.2 測(cè)試部署 9
1.4 小結(jié) 9
第2章 Spring IoC容器原理 10
2.1 IoC容器揭秘 10
2.1.1 IoC的概念 10
2.1.2 依賴倒置原則 11
2.1.3 依賴注入 16
2.2 Spring IoC的實(shí)現(xiàn)方式 17
2.2.1 XML方式實(shí)現(xiàn) 17
2.2.2 通過注解方式實(shí)現(xiàn) 20
2.3 Spring IoC實(shí)現(xiàn)原理解析 21
2.3.1 BeanFactory代碼解析 21
2.3.2 ApplicationContext代碼解析 22
2.3.3 BeanDefinition代碼解析 23
2.3.4 Spring IoC代碼分析 23
2.4 Spring IoC容器中Bean的生命周期 44
2.5 小結(jié) 52
第3章 Spring AOP揭秘 53
3.1 AOP前置知識(shí) 53
3.1.1 JDK動(dòng)態(tài)代理 53
3.1.2 CGLIB動(dòng)態(tài)代理 56
3.1.3 AOP聯(lián)盟 58
3.2 AOP概述 58
3.2.1 AOP基本概念 58
3.2.2 Spring AOP相關(guān)概念 59
3.3 Spring AOP實(shí)現(xiàn) 60
3.3.1 基于JDK動(dòng)態(tài)代理實(shí)現(xiàn) 60
3.3.2 基于CGLIB動(dòng)態(tài)代理實(shí)現(xiàn) 65
3.4 基于Spring AOP的實(shí)戰(zhàn) 70
3.4.1 增強(qiáng)類型 70
3.4.2 前置增強(qiáng) 71
3.4.3 后置增強(qiáng) 73
3.4.4 環(huán)繞增強(qiáng) 74
3.4.5 異常拋出增強(qiáng) 75
3.4.6 引介增強(qiáng) 75
3.4.7 切入點(diǎn)類型 77
3.5 Spring集成AspectJ實(shí)戰(zhàn) 78
3.5.1 使用AspectJ方式配置Spring AOP 78
3.5.2 AspectJ各種切點(diǎn)指示器 81
3.5.3 args()與“@args()” 81
3.5.4 @annotation() 87
3.5.5 execution 89
3.5.6 target()與“@target()” 90
3.5.7 this() 92
3.5.8 within()與“@within()” 95
3.6 Spring AOP的實(shí)現(xiàn)原理 98
3.6.1 設(shè)計(jì)原理 99
3.6.2 JdkDynamicAopProxy 106
3.6.3 CglibAopProxy 110
3.7 小結(jié) 115
第二篇 Spring 5新特性篇
第4章 Spring 5新特性概述 117
4.1 Spring 5.0新特性 117
4.1.1 運(yùn)行環(huán)境 117
4.1.2 刪除的代碼 118
4.1.3 核心修改 118
4.1.4 核心容器更新 118
4.1.5 Spring Web MVC更新 118
4.1.6 Spring WebFlux 119
4.1.7 對(duì)Kotlin的支持 119
4.1.8 測(cè)試改進(jìn) 120
4.2 Spring 5.1新特性 121
4.2.1 核心修改 121
4.2.2 核心容器更新 121
4.2.3 Web修改 121
4.2.4 Spring Web MVC更新 121
4.2.5 Spring WebFlux更新 122
4.2.6 Spring Messaging更新 122
4.2.7 Spring ORM更新 122
4.2.8 測(cè)試更新 122
第5章 Java 8新特性概述 123
5.1 Lambda表達(dá)式 123
5.1.1 Lambda表達(dá)式初探 123
5.1.2 Lambda表達(dá)式作用域 125
5.1.3 在線程中使用Lambda表達(dá)式 126
5.1.4 在集合中使用Lambda表達(dá)式 127
5.1.5 在Stream中使用Lambda表達(dá)式 128
5.2 接口默認(rèn)方法 129
5.3 小結(jié) 132
第6章 Spring WebFlux響應(yīng)式編程 133
6.1 傳統(tǒng)的編程模型 133
6.2 響應(yīng)式編程模型 134
6.3 Reactor 135
6.3.1 Flux與Mono 135
6.3.2 subscribe() 137
6.3.3 操作符(Operator) 139
6.3.4 線程模型 144
6.4 Spring WebFlux 146
6.4.1 基于注解的WebFlux開發(fā)方式 146
6.4.2 基于函數(shù)式的WebFlux開發(fā)方式 147
6.5 小結(jié) 152
第7章 WebClient響應(yīng)式客戶端 153
7.1 RestTemplate調(diào)試Spring MVC 153
7.2 WebClient調(diào)試Spring WebFlux 156
7.3 小結(jié) 158
第8章 Spring 5結(jié)合Kotlin編程 159
8.1 Kotlin簡(jiǎn)介 159
8.1.1 Kotlin的特性 159
8.1.2 Kotlin基本數(shù)據(jù)類型 161
8.1.3 Kotlin開發(fā)環(huán)境搭建 161
8.1.4 在Kotlin中定義常量與變量 162
8.1.5 字符串模板 162
8.1.6 NULL檢查機(jī)制 163
8.1.7 For循環(huán)和區(qū)間 163
8.1.8 定義函數(shù) 166
8.1.9 類和對(duì)象 167
8.1.10 Kotlin與Java互操作 169
8.2 Spring 5集成Kotlin 170
8.3 小結(jié) 172
第9章 Spring 5更多新特性 173
9.1 Resource接口 173
9.2 HTTP 2 174
9.2.1 HTTP的現(xiàn)狀 174
9.2.2 HTTP 2的新特性 174
9.2.3 多路復(fù)用與長(zhǎng)連接的區(qū)別 175
9.3 JUnit 5 176
9.3.1 JUnit 5簡(jiǎn)介 176
9.3.2 JUnit 5快速體驗(yàn) 176
9.3.3 JUnit 5常用注解 178
9.4 小結(jié) 179
第三篇 Spring系統(tǒng)集成篇
第10章 Spring集成Log4j2 181
10.1 Log4j2配置詳解 181
10.2 Log4j2日志級(jí)別 184
10.3 Log4j2實(shí)戰(zhàn)演練 185
10.4 小結(jié) 188
第11章 Spring集成Spring MVC 189
11.1 Spring MVC快速體驗(yàn) 189
11.1.1 web.xml配置 189
11.1.2 創(chuàng)建Spring MVC的配置 文件 190
11.1.3 創(chuàng)建Spring MVC的視圖 文件 190
11.1.4 創(chuàng)建控制器 191
11.1.5 測(cè)試運(yùn)行 191
11.2 Spring MVC視圖呈現(xiàn) 192
11.2.1 FreeMarker視圖的實(shí)現(xiàn) 192
11.2.2 XML視圖的實(shí)現(xiàn) 193
11.2.3 JSON視圖的實(shí)現(xiàn) 195
11.3 Spring MVC攔截器 196
11.4 Spring MVC代碼解析 198
11.5 小結(jié) 225
第12章 Spring集成MyBatis 226
12.1 Spring、Spring MVC和MyBatis集成 快速體驗(yàn) 226
12.2 MyBatis代碼解析 236
12.3 小結(jié) 243
第13章 Spring事務(wù)管理 244
13.1 事務(wù)的特性 244
13.2 事務(wù)的隔離級(jí)別 244
13.2.1 READ_UNCOMMITTED 245
13.2.2 READ_COMMITTED 245
13.2.3 REPEATABLE_READ 246
13.2.4 SERIALIZABLE 246
13.3 JDBC方式使用事務(wù) 247
13.4 Spring事務(wù)管理快速體驗(yàn) 248
13.5 Spring事務(wù)隔離級(jí)別 254
13.6 Spring事務(wù)傳播行為 255
13.7 Spring事務(wù)代碼分析 255
13.8 小結(jié) 263
第14章 Spring集成Redis 264
14.1 Redis單節(jié)點(diǎn)安裝 264
14.2 Redis支持的數(shù)據(jù)類型 266
14.2.1 Redis String類型的使用 方式 266
14.2.2 Redis Hash類型的使用 方式 271
14.2.3 Redis List類型的使用 方式 274
14.2.4 Redis Set類型的使用 方式 277
14.2.5 Redis SortedSet類型的使用 方式 280
14.3 Redis持久化策略 284
14.3.1 Redis RDB持久化 284
14.3.2 Redis AOF持久化 285
14.4 Redis主從復(fù)制模式 287
14.4.1 Redis一主一從拓?fù)浣Y(jié)構(gòu) 289
14.4.2 Redis一主多從拓?fù)浣Y(jié)構(gòu) 289
14.4.3 Redis樹形拓?fù)浣Y(jié)構(gòu) 290
14.4.4 Redis主從架構(gòu)的缺點(diǎn) 291
14.5 Redis哨兵模式 291
14.5.1 Redis哨兵模式簡(jiǎn)介 291
14.5.2 Redis哨兵定時(shí)監(jiān)控任務(wù) 292
14.5.3 主觀下線和客觀下線 294
14.5.4 Redis哨兵選舉領(lǐng)導(dǎo)者 295
14.5.5 故障轉(zhuǎn)移 295
14.5.6 Redis哨兵模式安裝部署 296
14.6 Redis集群模式 302
14.6.1 Redis集群模式數(shù)據(jù)共享 303
14.6.2 Redis集群中的主從復(fù)制 303
14.6.3 Redis集群中的一致性 問題 303
14.6.4 Redis集群架構(gòu) 304
14.6.5 Redis集群容錯(cuò) 304
14.6.6 Redis集群環(huán)境搭建 305
14.7 Spring、MyBatis和Redis集成快速 體驗(yàn) 313
14.8 Redis緩存穿透和雪崩 323
14.8.1 Redis緩存穿透 323
14.8.2 Redis緩存雪崩 326
14.9 小結(jié) 329
第15章 Spring集成ZooKeeper 330
15.1 ZooKeeper集群安裝 330
15.2 ZooKeeper總體架構(gòu) 336
15.2.1 ZooKeeper選舉機(jī)制 336
15.2.2 ZooKeeper數(shù)據(jù)模型 338
15.3 Spring集成ZooKeeper快速體驗(yàn) 342
15.4 ZooKeeper發(fā)布訂閱 346
15.4.1 NodeCache 346
15.4.2 PathChildrenCache 349
15.4.3 TreeCache 352
15.5 ZooKeeper分布式鎖 356
15.6 小結(jié) 361
第16章 Spring集成Kafka 362
16.1 Kafka集群安裝 362
16.2 Kafka總體架構(gòu) 365
16.3 Spring集成Kafka快速體驗(yàn) 374
16.4 小結(jié) 377
第17章 Spring集成Mycat 379
17.1 Mycat分庫(kù)分表 379
17.2 Mycat分庫(kù)分表實(shí)戰(zhàn) 381
17.3 Spring+MyBatis+Mycat快速體驗(yàn) 386
17.4 小結(jié) 397
第18章 Spring集成Sharding-JDBC 398
18.1 Spring集成Sharding-JDBC快速 體驗(yàn) 398
18.2 Sharding-JDBC強(qiáng)制路由 407
18.3 Sharding-JDBC分布式主鍵 408
18.4 小結(jié) 413
第19章 Spring集成Dubbo 414
19.1 遠(yuǎn)程過程調(diào)用協(xié)議 414
19.2 Spring集成Dubbo快速體驗(yàn) 415
19.3 Dubbo代碼分析 419
19.4 小結(jié) 452
附錄A 設(shè)計(jì)模式 453
A.1 工廠模式 453
A.2 抽象工廠模式 456
A.3 單例模式 462
A.4 建造者模式 463
A.5 原型模式 468
A.6 適配器模式 472
A.7 橋接模式 476
A.8 標(biāo)準(zhǔn)模式 477
A.9 組合模式 481
A.10 裝飾器模式 483
A.11 外觀模式 486
A.12 享元模式 489
A.13 代理模式 491
A.14 責(zé)任鏈模式 493
A.15 命令模式 496
A.16 解釋器模式 499
A.17 迭代器模式 502
A.18 中介者模式 504
A.19 備忘錄模式 506
A.20 觀察者模式 509
A.21 狀態(tài) 模 式 511
A.22 空對(duì)象模式 513
A.23 策略模式 516
A.24 模板模式 519
A.25 攔截過濾器模式 522
參考文獻(xiàn) 365