Spring Boot + Spring Cloud 微服務開發實戰
內容描述
當前因特網在Web框架上已經發展到微服務體系架構。
為了幫助廣大開發人員快速開展微服務開發,本書主要從Web網站開發的基礎知識、
Spring Boot相關知識、Spring Cloud相關知識,以及微服務開發實戰4個方面,
系統地介紹微服務框架中常用的知識點、常用組件,以及程序案例。
本書大多章節都先通過一個入門案例引導開發人員快速瞭解相關組件的功能,
在此基礎上再對每個知識點進行理論講解與剖析,*後對該組件進行源碼分析,
幫助開發人員更加深入地瞭解每個組件的底層原理,以便更好地進行二次開發。
本書既是初學者學習微服務開發的技術寶典,又是中級開發人員瞭解微服務體系底層原理的手冊。
目錄大綱
目錄:
第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 POST請求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
作者介紹
曹軍
主要研究領域:分佈式開發、大數據中台、微服務框架等。
有著多年的IT一線從業經驗,在多個分佈式開發項目中擔任項目負責人和技術架構師,
熟悉各種主流框架,對分佈式開發有著深刻的理解,擅長分佈式開發框架的搭建及優化,
以及高並發場景的處理。
在互聯網技術實踐過程中,積累了豐富的實戰經驗。