●第1篇 Web基礎知識
第1章 認識微服務03
1.1 什麼是微服務框架 03
1.2 互聯網框架的演變 04
1.2.1 ORM框架 05
1.2.2 MVC框架 06
1.2.3 RPC框架 07
1.2.4 SOA框架 09
1.3 模塊的拆分 09
1.3.1 拆分中的問題 10
1.3.2 拆分原則 10
1.4 當前主流微服務框架 12
1.4.1 Dubbo簡介 12
1.4.2 Spring Cloud簡介 13
1.4.3 HTTP與RPC簡介 14
1.4.4 Spring Boot與Spring Cloud的關繫 15
第2章 快速搭建一個微服務框架16
2.1 Spring Boot框架搭建 16
2.1.1 使用STS搭建開發環境 16
2.1.2 使用IntelliJ IDEA搭建開發環境 19
2.2 實現安全登錄的微服務框架 21
2.2.1 功能描述與最終目標 22
2.2.2 功能結構 22
2.3 微服務框架搭建 23
2.3.1 搭建模塊 23
2.3.2 啟動Demo 31
2.3.3 打包發布 34
第3章 Restful風格的編程 36
3.1 Restful 簡介 36
3.2 查詢用戶以及用戶詳情 37
3.2.1 編寫測試類程序 37
3.2.2 常用注解 40
3.2.3 查詢用戶詳情 47
3.3 處理創建請求 50
3.3.1 @RequestBody注解 51
3.3.2 日期類型的處理 52
3.3.3 @Valid注解 54
3.3.4 BindingResult驗證參數合法性 55
3.4 用戶信息修改與刪除 56
3.4.1 用戶信息修改 56
3.4.2 用戶信息刪除 58
第2篇 Spring Boot
第4章 Spring Boot中的IOC 61
4.1 IOC原理簡介 61
4.1.1 IOC小案例 61
4.1.2 IOC簡介 64
4.2 裝配Bean 67
4.2.1 @ComponentScan簡介 67
4.2.2 @ComponentScan使用實例 69
4.3 依賴注入ID 75
4.3.1 常用注解 75
4.3.2 @Autowired 注解 76
4.4 Bean 的生命周期 82
4.4.1 Bean 的初始化過程 82
4.4.2 Bean 的延遲初始化 85
4.4.3 Bean 的生命周期 86
4.5 配置文件90
4.5.1 配置文件的使用方式 90
4.5.2 Yml 配置文件的使用 95
第5章 Spring Boot 中的AOP 97
5.1 AOP 簡介 97
5.1.1 AOP 小案例 97
5.1.2 AOP 術語 101
5.2 AOP 開發詳解 102
5.2.1 連接點與兩種代理 102
5.2.2 切面 106
5.2.3 切點 107
5.2.4 多切面與@Order 111
5.3 AOP 原理 114
5.3.1 AOP 代理原理講解 114
5.3.2 ProxyCreatorSupport 核心代理類 116
5.3.3 通知和通知器 118
5.4 AOP 後置處理器 120
5.4.1 AnnotationAwareAspectJAutoProxyCreator 方式 120
5.4.2 後置處理器的注冊 122
5.4.3 後置處理器處理@Aspect 的Bean 123
第6章 Spring Boot 中的數據源 125
6.1 配置數據源 125
6.1.1 默認數據源 125
6.1.2 自定義數據源 126
6.2 JdbcTemplate 的使用 131
6.2.1 JdbcTemplate 實例 131
6.2.2 JdbcTemplate 原理說明 134
6.3 JPA 的使用 135
6.3.1 JPA 概述 135
6.3.2 JPA 使用實例135
6.4 Spring Boot 與MyBatis 集成 140
6.4.1 MyBatis 原理 140
6.4.2 Spring Boot 與MyBatis 集成 141
第7章 Spring Boot 中的事務 148
7.1 隔離級別148
7.1.1 數據庫的隔離級別 148
7.1.2 Spring Boot 中的隔離級別 151
7.2 聲明式事務 152
7.2.1 @Transaction 注解 152
7.2.2 事務管理器 153
7.3 JPA 下的事務 155
7.3.1 普通的數據庫訪問 155
7.3.2 事務 159
7.4 JDBC 下的事務 161
7.5 事務傳播行為 164
第8章 Spring Boot 中的Redis 167
8.1 Redis 的簡單使用 167
8.1.1 Spring-boot-starter-data-redis 介紹 167
8.1.2 Redis 的使用 168
8.1.3 使用配置類建立Redis 工廠 170
8.2 對Redis 數據類型的操作 172
8.2.1 StringRedisTemplate 的使用 172
8.2.2 模板template 175
8.2.3 數據類型的操作 177
8.3 序列化 181
8.3.1 序列化實例 181
8.3.2 序列化講解 185
8.4 緩存 186
8.4.1 緩存的使用 186
8.4.2 緩存的注解 191
第9章 Spring Boot 中的Security 200
9.1 基本原理200
9.1.1 默認安全登錄 201
9.1.2 Security 原理說明 202
9.2 自定義用戶認證邏輯 204
9.2.1 處理用戶獲取邏輯 204
9.2.2 處理用戶校驗邏輯 206
9.2.3 密碼加密與解密 208
9.3 自定義用戶認證流程 210
9.3.1 自定義登錄頁面 210
9.3.2 優化自定義登錄頁面 213
9.3.3 登錄成功之後的處理 218
9.3.4 登錄失敗之後的處理 220
第3篇 Spring Cloud
第10章 服務治理Spring Cloud Eureka 225
10.1 Eureka 快速入門 225
10.1.1 服務治理 225
10.1.2 Eureka 的服務治理 227
10.1.3 Eureka 的服務注冊中心搭建 228
10.1.4 Eureka 的服務提供者 232
10.1.5 Eureka Server 的高可用 235
10.2 Eureka 的消費 237
10.2.1 RestTemplate 直接調用 237
10.2.2 LoadBalancerClient 調用 239
10.2.3 @LoadBalanced 注解 240
10.3 Eureka 原理詳解 241
10.3.1 基礎框架 241
10.3.2 機制 242
10.4 進階配置項說明 244
10.4.1 服務注冊類的配置 244
10.4.2 服務實例類的配置 246
10.4.3 服務注冊中心配置 248
10.4.4 服務注冊中心儀表盤配置 249
10.5 Eureka 源碼分析 249
10.5.1 DiscoveryClient 實例 250
10.5.2 服務發現 251
第11章 負載均衡Spring Cloud Ribbon 254
11.1 Ribbon 使用 254
11.1.1 客戶端負載均衡 254
11.1.2 Ribbon 實例 255
11.1.3 Ribbon 用法總結 258
11.2 RestTemplate 的詳細使用方法 259
11.2.1 RestTemplate 功能 259
11.2.2 GET 請求API 261
11.2.3 T 請求API 265
11.2.4 PUT 請求API 271
11.2.5 DELETE 請求API 271
11.3 Ribbon 的負載均衡入口 272
11.4 Ribbon 的負載均衡器 274
11.4.1 AbstractLoadBalancer 類 274
11.4.2 BaseLoadBalancer 類 275
11.4.3 DynamicServerListLoadBalancer 類 277
11.4.4 服務注冊 282
第12章 聲明式服務調用Spring Cloud Feign 285
12.1 Feign 的使用實例 285
12.1.1 Feign 演示實例 285
12.1.2 Feign 與Spring MVC 290
12.2 Feign 中Ribbon 的配置 294
12.2.1 全局配置與指定服務的配置 294
12.2.2 重試機制 295
12.3 Feign 的配置 296
12.3.1 日志配置 296
12.3.2 其他配置 298
12.3.3 自定義配置 299
第13章 服務容錯保護Spring Cloud Hystrix 303
13.1 Hystrix 的使用 303
13.1.1 服務降級 303
13.1.2 超時設置 308
13.1.3 服務熔斷 313
13.2 Hystrix 的原理 314
13.2.1 Hystrix 產生背景 315
13.2.2 Hystrix 實現原理 316
13.3 Hystrix 的應用 318
13.3.1 Hystrix 工作流程 318
13.3.2 自定義使用Hystrix 320
13.4 Hystrix 的配置 322
13.4.1 屬性配置說明 322
13.4.2 屬性配置 323
13.4.3 Command 屬性 325
第14章 配置中心Spring Cloud Config 328
14.1 Config 的原理 328
14.2 Config 的服務端使用 329
14.2.1 搭建配置中心 329
14.2.2 配置中心測試 333
14.2.3 本地Git 336
14.3 Config 的客戶端使用 337
14.3.1 配置客戶端 337
14.3.2 客戶端測試 338
14.3.3 Config 的高可用性 340
14.4 Config 的知識點 341
14.4.1 Config 的Git 介紹 341
14.4.2 動態刷新配置 342
第15章 網關Spring Cloud Zuul 343
15.1 Zuul 路由 343
15.1.1 基本的網關功能 343
15.1.2 自定義路由 348
15.1.3 Cookie 頭信息控制 349
15.2 Zuul 請求過濾 351
15.2.1 應用場景 351
15.2.2 鋻權 352
15.2.3 限流 355
15.3 Zuul 其他知識點 356
15.3.1 過濾器 356
15.3.2 高可用 356
第4篇 微服務開發實戰
第16章 點餐管理繫統實戰359
16.1 點餐管理繫統框架說明 359
16.1.1 繫統使用的技術 359
16.1.2 繫統功能模塊 361
16.1.3 繫統搭建 361
16.2 點餐管理繫統框架設計 372
16.2.1 具體需求分析 372
16.2.2 數據庫設計 372
16.2.3 對外接口設計 373
16.3 商品模塊開發 374
16.3.1 基本的準備工作 374
16.3.2 接口開發 376
16.3.3 封裝Restful 接口 379
16.3.4 Restful 接口測試 380
16.4 訂單模塊開發 382
16.4.1 基本的準備工作 382
16.4.2 接口開發 384
16.4.3 封裝Restful 接口 386
16.4.4 Restful 接口測試 386
第17章 圖書管理繫統實戰387
17.1 圖書管理繫統框架說明 387
17.1.1 需求分析 387
17.1.2 技術說明 388
17.2 圖書管理繫統框架設計 388
17.2.1 數據庫設計 388
17.2.2 接口設計 389
17.2.3 環境搭建 390
17.3 借閱模塊開發 393
17.3.1 實體類 394
17.3.2 Repository 接口 394
17.3.3 Service 層 395
17.3.4 Controller 層 395
17.3.5 接口測試 395
當前互聯網在Web框架上已經發展到微服務體繫架構。為了幫助廣大開發人員快速開展微服務開發,《Spring Boot+Spring Cloud微服務開發實戰》主要從Web網站開發的基礎知識、Spring Boot相關知識、Spring Cloud相關知識,以及微服務開發實戰4個方面,繫統地介紹微服務框架中常用的知識點、常用組件,以及程序案例。本書大多章節都先通過一個入門案例引導開發人員快速了解相關組件的功能,在此基礎上再對每個知識點進行理論講解與剖析,最後對該組件進行源碼分析,幫助開發人員更加深入地了解每個組件的底層原理,以便更好地進行二次開發。本書既是初學者學習微服務開發的技術寶典,又是中級開發人員了解微服務體繫底層原理的手冊。