第 1章 Spring Boot來臨 1
1.1 Spring的曆史 1
1.2 注解還是XML 2
1.3 Spring Boot的優點 3
1.4 傳統Spring MVC和Spring Boot的對比 4
第 2章 聊聊開發環境搭建和基本開發 10
2.1 搭建Spring Boot開發環境 10
2.1.1 搭建Eclipse開發環境 10
2.1.2 搭建IntelliJ IDEA開發環境 13
2.2 Spring Boot的依賴和自動配置 15
2.3 使用自定義配置 19
2.4 開發自己的Spring Boot項目 21
第3章 全注解下的Spring IoC 23
3.1 IoC容器簡介 23
3.2 裝配你的Bean 27
3.2.1 通過掃描裝配你的Bean 27
3.2.2 自定義第三方Bean 31
3.3 依賴注入 32
3.3.1 注解@Autowired 34
3.3.2 消除歧義性——@Primary和@Quelifier 35
3.3.3 帶有參數的構造方法類的裝配 36
3.4 生命周期 37
3.5 使用屬性文件 42
3.6 條件裝配Bean 45
3.7 Bean的作用域 46
3.8 使用@Profile 48
3.9 引入XML配置Bean 50
3.10 使用Spring EL 51
第4章 開始約定編程——Spring AOP 53
4.1 約定編程 53
4.1.1 約定 53
4.1.2 ProxyBean的實現 57
4.1.3 總結 60
4.2 AOP的概念 61
4.2.1 為什麼使用AOP 61
4.2.2 AOP 術語和流程 64
4.3 AOP開發詳解 65
4.3.1 確定連接點 65
4.3.2 開發切麵 66
4.3.3 切點定義 67
4.3.4 測試AOP 68
4.3.5 環繞通知 71
4.3.6 引入 72
4.3.7 通知獲取參數 74
4.3.8 織入 75
4.4 多個切麵 77
第5章 訪問數據庫 82
5.1 配置數據源 83
5.1.1 啓動默認數據源 83
5.1.2 配置自定義數據源 83
5.2 使用JdbcTemplate操作數據庫 86
5.3 使用JPA(Hibernate)操作數據 90
5.3.1 概述 90
5.3.2 開發JPA 90
5.4 整閤MyBatis框架 96
5.4.1 MyBatis簡介 96
5.4.2 MyBatis的配置 97
5.4.3 Spring Boot整閤MyBatis 101
5.4.4 MyBatis的其他配置 104
第6章 聊聊數據庫事務處理 107
6.1 JDBC的數據庫事務 108
6.2 Spring聲明式事務的使用 110
6.2.1 Spring聲明式數據庫事務約定 110
6.2.2 @Transactional的配置項 111
6.2.3 Spring事務管理器 113
6.2.4 測試數據庫事務 114
6.3 隔離級彆 118
6.3.1 數據庫事務的知識 118
6.3.2 詳解隔離級彆 120
6.4 傳播行為 124
6.4.1 傳播行為的定義 125
6.4.2 測試傳播行為 126
6.5 @Transactional自調用失效問題 130
第7章 使用性能利器——Redis 134
7.1 spring-data-redis項目簡介 135
7.1.1 spring-data-redis項目的設計 135
7.1.2 RedisTemplate 137
7.1.3 Spring對Redis數據類型操作的封裝 139
7.1.4 SessionCallback和RedisCallback接口 141
7.2 在Spring Boot中配置和使用Redis 142
7.2.1 在Spring Boot中配置Redis 142
7.2.2 操作Redis數據類型 143
7.3 Redis的一些特殊用法 148
7.3.1 使用Redis事務 148
7.3.2 使用Redis流水綫 149
7.3.3 使用Redis發布訂閱 150
7.3.4 使用Lua腳本 153
7.4 使用Spring緩存注解操作Redis 156
7.4.1 緩存管理器和緩存的啓用 156
7.4.2 開發緩存注解 157
7.4.3 測試緩存注解 163
7.4.4 緩存注解自調用失效問題 165
7.4.5 緩存髒數據說明 165
7.4.6 自定義緩存管理器 166
第8章 文檔數據庫——MongoDB 168
8.1 配置MongoDB 169
8.2 使用MongoTemplate實例 170
8.2.1 搭建開發環境 170
8.2.2 使用MongoTemplate操作文檔 173
8.3 使用JPA 178
8.3.1 基本用法 178
8.3.2 使用自定義查詢 180
第9章 初識Spring MVC 183
9.1 Spring MVC框架的設計 183
9.2 Spring MVC流程 184
9.3 定製Spring MVC的初始化 191
9.4 Spring MVC實例 192
9.4.1 開發控製器 193
9.4.2 視圖和視圖渲染 194
第 10章 深入Spring MVC開發 197
10.1 處理器映射 197
10.2 獲取控製器參數 198
10.2.1 在無注解下獲取參數 199
10.2.2 使用@RequestParam獲取參數 199
10.2.3 傳遞數組 200
10.2.4 傳遞JSON 200
10.2.5 通過URL傳遞參數 203
10.2.6 獲取格式化參數 204
10.3 自定義參數轉換規則 205
10.3.1 處理器獲取參數邏輯 205
10.3.2 一對一轉換器(Converter) 208
10.3.3 GenericConverter集閤和數組轉換 210
10.4 數據驗證 211
10.4.1 JSR-303 驗證 211
10.4.2 參數驗證機製 214
10.5 數據模型 217
10.6 視圖和視圖解析器 219
10.6.1 視圖設計 219
10.6.2 視圖實例——導齣PDF文件 220
10.7 文件上傳 224
10.7.1 Spring MVC對文件上傳的支持 224
10.7.2 開發文件上傳功能 226
10.8 攔截器 228
10.8.1 攔截器的設計 228
10.8.2 開發攔截器 229
10.8.3 多個攔截器的順序 231
10.9 國際化 234
10.9.1 國際化消息源 234
10.9.2 國際化解析器 235
10.9.3 國際化實例——SessionLocaleResolver 237
10.10 Spring MVC拾遺 240
10.10.1 @ResponseBody轉換為JSON的秘密 240
10.10.2 重定嚮 241
10.10.3 操作會話對象 243
10.10.4 給控製器增加通知 245
10.10.5 獲取請求頭參數 247
第 11章 構建REST風格網站 249
11.1 REST簡述 249
11.1.1 REST名詞解釋 249
11.1.2 HTTP的動作 250
11.1.3 REST風格的一些誤區 251
11.2 使用Spring MVC開發REST風格端點 251
11.2.1 Spring MVC整閤REST 252
11.2.2 使用Spring開發REST風格的端點 252
11.2.3 使用@RestController 260
11.2.4 渲染結果 261
11.2.5 處理HTTP狀態碼、異常和響應頭 262
11.3 客戶端請求RestTemplate 266
11.3.1 使用RestTemplate請求後端 267
11.3.2 獲取響應頭、狀態碼和資源交換 269
第 12章 安全——Spring Security 271
12.1 概述和簡單安全認證 271
12.2 使用WebSecurityConfigurerAdapter自定義 273
12.3 自定義用戶服務信息 274
12.3.1 使用內存簽名服務 275
12.3.2 使用數據庫定義用戶認證服務 276
12.3.3 使用自定義用戶認證服務 279
12.4 限製請求 281
12.4.1 配置請求路徑訪問權限 282
12.4.2 使用Spring錶達式配置訪問權限 283
12.4.3 強製使用HTTPS 285
12.4.4 防止跨站點請求僞造 285
12.5 用戶認證功能 287
12.5.1 自定義登錄頁麵 287
12.5.2 啓用HTTP Basic認證 288
12.5.3 登齣 289
第 13章 學點Spring其他的技術 291
13.1 異步綫程池 291
13.1.1 定義綫程池和開啓異步可用 292
13.1.2 異步實例 292
13.2 異步消息 294
13.2.1 JMS實例——ActiveMQ 295
13.2.2 使用AMQP——RabbitMQ 299
13.3 定時任務 303
13.4 WebSocket 應用 306
13.4.1 開發簡易的WebSocket服務 306
13.4.2 使用STOMP 311
第 14章 Spring 5新框架——WebFlux 319
14.1 基礎概念 319
14.1.1 響應式編程的宣言 320
14.1.2 Reactor模型 320
14.1.3 Spring WebFlux的概述 322
14.1.4 WebHandler接口和運行流程 323
14.2 通過Spring MVC方式開發WebFlux服務端 325
14.2.1 開發持久層 325
14.2.2 開發服務層 327
14.2.3 開發控製層 328
14.2.4 配置服務 330
14.2.5 客戶端開發——WebClient 331
14.3 深入WebFlux服務端開發 335
14.3.1 類型轉換器——Converter 335
14.3.2 驗證器——Validator 337
14.3.3 訪問靜態資源 338
14.4 深入客戶端開發 339
14.4.1 處理服務端錯誤和轉換 339
14.4.2 設置請求頭 341
14.5 使用路由函數方式開發WebFlux 342
14.5.1 開發處理器 342
14.5.2 開發請求路由 346
14.5.3 使用過濾器 347
第 15章 實踐一下——搶購商品 349
15.1 設計與開發 349
15.1.1 數據庫錶設計 349
15.1.2 使用MyBatis開發持久層 350
15.1.3 使用Spring開發業務層和控製層 353
15.1.4 測試和配置 355
15.2 高並發開發 357
15.2.1 超發現象 357
15.2.2 悲觀鎖 358
15.2.3 樂觀鎖 359
15.2.4 使用Redis處理高並發 365
第 16章 部署、測試和監控 371
16.1 部署和運行 371
16.1.1 打包 371
16.1.2 運行項目 373
16.1.3 熱部署 375
16.2 測試 376
16.2.1 構建測試類 376
16.2.2 使用隨機端口和REST風格測試 377
16.2.3 Mock測試 378
16.3 Actuator監控端點 379
16.4 HTTP監控 381
16.4.1 查看敏感信息 382
16.4.2 shutdown端點 383
16.4.3 配置端點 385
16.4.4 自定義端點 387
16.4.5 健康指標項 389
16.5 JMX監控 392
第 17章 分布式開發——Spring Cloud 393
17.1 服務治理和服務發現——Eureka 395
17.1.1 配置服務治理節點 395
17.1.2 服務發現 397
17.1.3 配置多個服務治理中心節點 401
17.2 微服務之間的調用 403
17.2.1 Ribbon客戶端負載均衡 403
17.2.2 Feign聲明式調用 406
17.3 斷路器——Hystrix 409
17.3.1 使用降級服務 410
17.3.2 啓用Hystrix儀錶盤 412
17.4 路由網關——Zuul 415
17.4.1 構建Zuul網關 415
17.4.2 使用過濾器 418
17.5 使用@SpringCloudApplication 421
附錄 Spring Boot知識點補充 423
· · · · · · (
收起)