目錄
         +++++++++入 門 篇
         第1章  進入Spring Boot世界  /2
         1.1  認識Spring Boot  /2
         ∣1.1.1  什麼是Spring Boot  /2
         ∣1.1.2  Spring、Spring Boot、Spring Cloud的關係  /4
         ∣1.1.3  Spring Boot的特色  /5
         ∣1.1.4  Spring Boot支持的開發語言  /6
         ∣1.1.5  學習Spring Boot的前景展望  /6
         1.2  學習Spring Boot的建議  /7
         ∣1.2.1  看透本書理論,模仿實戰例子  /7
         ∣1.2.2  利用開發工具自動學習  /7
         ∣1.2.3  發現新功能的方法  /8
         ∣1.2.4  建立高階的思維方式  /9
         ∣1.2.5  控製版本,降低犯錯的代價  /10
         ∣1.2.6  獲取最新、最全的資料  /11
         ∣1.2.7  學會自己發現和解決問題  /11
         ∣1.2.8  善於提問,成功一半  /12
         第2章  準備開發環境  /14
         2.1  搭建環境  /14
         ∣2.1.1  安裝Java開發環境JDK  /14
         ∣2.1.2  配置JDK的環境變量  /15
         2.2  熟悉Maven  /18
         ∣2.2.1  安裝及配置Maven  /18
         ∣2.2.2  認識其中的pom.xml文件  /19
         ∣2.2.3  Maven的運作方式  /23
         ∣2.2.4  配置國內倉庫  /23
         第3章  使用開發工具  /25
         3.1  安裝開發工具IDEA及插件  /25
         ∣3.1.1  安裝IDEA  /25
         ∣3.1.2  配置IDEA的Maven環境  /27
         ∣3.1.3  安裝Spring Assistant插件  /27
         ∣3.1.4  安裝插件Lombok  /28
         3.2  【實例1】用Spring Boot輸齣“Hello World”  /30
         ∣3.2.1  構建Spring Boot項目  /30
         ∣3.2.2  編寫控製器,實現輸齣功能  /31
         ∣3.2.3  在IDEA中運行程序  /33
         ∣3.2.4  打包成可執行的JAR包  /33
         3.3  在Eclipse中開發Spring Boot應用程序  /35
         ∣3.3.1  安裝Eclipse  /35
         ∣3.3.2  安裝Spring Tools 4插件  /35
         ∣3.3.3  配置Eclipse的Maven環境  /36
         ∣3.3.4  創建Spring Boot項目  /37
         3.4  瞭解Spring官方開發工具STS  /37
         3.5  必會的IDEA實用技能  /38
         ∣3.5.1  智能提示代碼  /38
         ∣3.5.2  自動提示參數  /39
         ∣3.5.3  實現自動轉義  /39
         ∣3.5.4  自定義高復用代碼塊  /40
         ∣3.5.5  設置注釋信息  /41
         ∣3.5.6  超能的“Alt+Enter”快捷鍵  /42
         ∣3.5.7  使用全局配置  /42
         ∣3.5.8  自動生成語句  /43
         3.6  比較IDEA與Eclipse  /44
         3.7  如何使用本書源代碼  /47
         ∣3.7.1  在IDEA中使用  /47
         ∣3.7.2  在Eclipse(STS)中使用  /47
         ∣
         +++++++++基 礎 篇
         第4章  Spring Boot基礎  /50
         4.1  瞭解Spring Boot  /50
         ∣4.1.1  瞭解Spring Boot項目結構  /50
         ∣4.1.2  瞭解Spring Boot的入口類  /51
         ∣4.1.3  瞭解Spring Boot的自動配置  /52
         ∣4.1.4  瞭解Spring Boot熱部署  /52
         ∣4.1.5  【實例2】定製啓動畫麵  /53
         4.2  Spring Boot的常用注解  /54
         ∣4.2.1  什麼是注解式編程  /55
         ∣4.2.2  瞭解係統注解  /55
         ∣4.2.3  Spring Boot的常用注解  /56
         4.3  使用配置文件  /61
         ∣4.3.1  【實例3】演示如何使用application.yml文件  /62
         ∣4.3.2  【實例4】演示如何使用application.properties文件  /65
         ∣4.3.3  【實例5】用application.yml和application.properties配置多環境  /67
         4.4  Spring Boot的Starter  /69
         ∣4.4.1  瞭解Starter  /69
         ∣4.4.2  使用Starter  /70
         第5章  分層開發Web應用程序  /71
         5.1  應用程序分層開發模式——MVC  /71
         ∣5.1.1  瞭解MVC模式  /71
         ∣5.1.2  MVC和三層架構的關係  /72
         5.2  使用視圖技術Thymeleaf  /73
         ∣5.2.1  認識Thymeleaf  /73
         ∣5.2.2  基礎語法  /75
         ∣5.2.3  處理循環遍曆  /78
         ∣5.2.4  處理公共代碼塊  /80
         ∣5.2.5  處理分頁  /81
         ∣5.2.6  驗證和提示錯誤消息  /82
         ∣5.2.7  【實例6】編寫Thymeleaf視圖以展示數據  /83
         5.3  使用控製器  /85
         ∣5.3.1  常用注解  /85
         ∣5.3.2  將URL映射到方法  /86
         ∣5.3.3  處理HTTP請求的方法  /87
         ∣5.3.4  處理內容類型  /89
         ∣5.3.5  在方法中使用參數  /90
         5.4  理解模型  /93
         5.5  【實例7】實現MVC模式的Web應用程序  /94
         ∣5.5.1  添加依賴  /94
         ∣5.5.2  創建實體模型  /95
         ∣5.5.3  創建控製器  /95
         ∣5.5.4  創建用於展示的視圖  /96
         5.6  驗證數據  /96
         ∣5.6.1  認識內置的驗證器Hibernate∣validator  /96
         ∣5.6.2  自定義驗證功能  /98
         ∣5.6.3  【實例8】驗證錶單數據並實現數據的自定義驗證  /99
         第6章  響應式編程  /103
         6.1  認識響應式編程  /103
         ∣6.1.1  什麼是WebFlux  /103
         ∣6.1.2  比較MVC和WebFlux  /103
         ∣6.1.3  認識Mono和Flux  /105
         ∣6.1.4  開發WebFlux的流程  /106
         6.2  【實例9】用注解式開發實現Hello World  /107
         ∣6.2.1  配置WebFlux依賴  /107
         ∣6.2.2  編寫控製器  /107
         6.3  【實例10】用注解式開發實現數據的增、刪、改、查  /108
         ∣6.3.1  創建實體類  /108
         ∣6.3.2  編寫控製器  /108
         ∣6.3.3  測試API功能  /110
         6.4  【實例11】用響應式開發方式開發WebFlux  /111
         ∣6.4.1  編寫處理器類Handler  /111
         ∣6.4.2  編寫路由器類Router  /112
         6.5  【實例12】用WebFlux模式操作MongoDB數據庫,實現數據的增、刪、改、查功能  /112
         ∣6.5.1  添加依賴  /112
         ∣6.5.2  創建實體類  /113
         ∣6.5.3  編寫接口  /113
         6.5.4  編寫增、刪、改、查數據的API  /113
         ∣
         +++++++++進 階 篇
         第7章  Spring Boot進階  /118
         7.1  麵嚮切麵編程  /118
         ∣7.1.1  認識Spring AOP  /118
         ∣7.1.2  【實例13】用AOP方式管理日誌  /119
         7.2  認識IoC容器和Servlet容器  /121
         ∣7.2.1  認識容器  /121
         ∣7.2.2  【實例14】用IoC管理Bean  /123
         ∣7.2.3  【實例15】用Servlet處理請求  /125
         7.3  過濾器與監聽器  /126
         ∣7.3.1  認識過濾器  /126
         ∣7.3.2  【實例16】實現過濾器  /128
         ∣7.3.3  認識監聽器  /128
         ∣7.3.4  【實例17】實現監聽器  /129
         7.4  自動配置  /130
         ∣7.4.1  自定義入口類  /130
         ∣7.4.2  自動配置的原理  /131
         ∣7.4.3  【實例18】自定義Starter  /133
         7.5  元注解  /136
         ∣7.5.1  瞭解元注解  /136
         ∣7.5.2  【實例19】自定義注解  /137
         7.6  異常處理  /138
         ∣7.6.1  認識異常處理  /138
         ∣7.6.2  使用控製器通知  /141
         ∣7.6.3  【實例20】自定義錯誤處理控製器  /142
         ∣7.6.4  【實例21】自定義業務異常類  /143
         7.7  單元測試  /145
         ∣7.7.1  瞭解單元測試  /145
         ∣7.7.2  Spring Boot 的測試庫  /145
         ∣7.7.3  快速創建測試單元  /149
         ∣7.7.4  【實例22】Controller層的單元測試  /150
         ∣7.7.5  【實例23】Service層的單元測試  /153
         ∣7.7.6  【實例24】Repository層的單元測試  /154
         第8章  用ORM操作SQL數據庫  /156
         8.1  認識Java的數據庫連接模闆JDBCTemplate  /156
         ∣8.1.1  認識JDBCTemplate  /156
         ∣8.1.2  【實例25】用JDBCTemplate實現數據的增、刪、改、查  /157
         ∣8.1.3  認識ORM  /161
         8.2  JPA——Java持久層API  /161
         ∣8.2.1  認識Spring Data  /161
         ∣8.2.2  認識JPA  /162
         ∣8.2.3  使用JPA  /164
         ∣8.2.4  瞭解JPA注解和屬性  /165
         ∣8.2.5  【實例26】用JPA構建實體數據錶  /167
         8.3  認識JPA的接口  /169
         ∣8.3.1  JPA接口JpaRepository  /169
         ∣8.3.2  分頁排序接口PagingAndSortingRepository  /169
         ∣8.3.3  數據操作接口CrudRepository  /170
         ∣8.3.4  分頁接口Pageable和Page  /170
         ∣8.3.5  排序類Sort  /171
         8.4  JPA的查詢方式  /171
         ∣8.4.1  使用約定方法名  /171
         ∣8.4.2  用JPQL進行查詢  /173
         ∣8.4.3  用原生SQL進行查詢  /174
         ∣8.4.4  用Specifications進行查詢  /175
         ∣8.4.5  用ExampleMatcher進行查詢  /177
         ∣8.4.6  用謂語QueryDSL進行查詢  /177
         ∣8.4.7  用NamedQuery進行查詢  /177
         8.5  【實例27】用JPA開發文章管理模塊  /178
         ∣8.5.1  實現文章實體  /178
         ∣8.5.2  實現數據持久層  /179
         ∣8.5.3  實現服務接口和服務接口的實現類  /179
         ∣8.5.4  實現增、刪、改、查的控製層API功能  /180
         ∣8.5.5  實現增、刪、改、查功能的視圖層  /182
         8.6  實現自動填充字段  /185
         8.7  掌握關係映射開發  /187
         ∣8.7.1  認識實體間關係映射  /187
         ∣8.7.2  【實例28】實現“一對一”映射  /188
         ∣8.7.3  【實例29】實現“一對多”映射  /192
         ∣8.7.4  【實例30】實現“多對多”映射  /195
         8.8  認識MyBatis——Java數據持久層框架  /197
         ∣8.8.1  CRUD注解  /198
         ∣8.8.2  映射注解  /198
         ∣8.8.3  高級注解  /199
         8.9  【實例31】用MyBatis實現數據的增加、刪除、修改、查詢和分頁  /200
         ∣8.9.1  創建Spring Boot項目並引入依賴  /201
         ∣8.9.2  實現數據錶的自動初始化  /201
         ∣8.9.3  實現實體對象建模  /202
         ∣8.9.4  實現實體和數據錶的映射關係  /202
         ∣8.9.5  實現增、刪、改、查功能  /203
         ∣8.9.6  配置分頁功能  /204
         ∣8.9.7  實現分頁控製器  /205
         ∣8.9.8  創建分頁視圖  /206
         8.10  比較JPA與MyBatis  /207
         第9章  接口架構風格——RESTful  /209
         9.1  REST——前後颱間的通信方式  /209
         ∣9.1.1  認識REST  /209
         ∣9.1.2  認識HTTP方法與CRUD動作映射  /210
         ∣9.1.3  實現RESTful風格的數據增、刪、改、查  /210
         9.2  設計統一的RESTful風格的數據接口  /212
         ∣9.2.1  版本控製  /212
         ∣9.2.2  過濾信息  /213
         ∣9.2.3  確定HTTP的方法  /213
         ∣9.2.4  確定HTTP的返迴狀態  /213
         ∣9.2.5  定義統一返迴的格式  /214
         9.3  【實例32】為手機APP、PC、H5網頁提供統一風格的API  /214
         ∣9.3.1  實現響應的枚舉類  /214
         ∣9.3.2  實現返迴的對象實體  /215
         ∣9.3.3  封裝返迴結果  /215
         ∣9.3.4  統一處理異常  /215
         ∣9.3.5  編寫測試控製器  /219
         ∣9.3.6  實現數據的增、刪、改、查控製器  /220
         ∣9.3.7  測試數據  /221
         9.4  【實例33】用Swagger實現接口文檔  /222
         ∣9.4.1  配置Swagger  /222
         ∣9.4.2  編寫接口文檔  /224
         9.5  用RestTemplate發起請求  /224
         ∣9.5.1  認識RestTemplate  /224
         ∣9.5.2  【實例34】用RestTemplate發送GET請求  /225
         ∣9.5.3  【實例35】用RestTemplate發送POST請求  /228
         ∣9.5.4  用RestTemplate發送PUT和DELETE請求  /231
         第10章  集成安全框架,實現安全認證和授權  /233
         10.1  Spring Security——Spring的安全框架  /233
         ∣10.1.1  認識Spring Security  /233
         ∣10.1.2  核心類  /235
         10.2  配置Spring Security  /240
         ∣10.2.1  繼承WebSecurityConfigurer Adapter  /240
         ∣10.2.2  配置自定義策略  /240
         ∣10.2.3  配置加密方式  /242
         ∣10.2.4  自定義加密規則  /242
         ∣10.2.5  配置多用戶係統  /242
         ∣10.2.6  獲取當前登錄用戶信息的幾種方式  /244
         10.3  【實例36】用Spring Security實現後颱登錄及權限認證功能  /246
         ∣10.3.1  引入依賴  /246
         ∣10.3.2  創建權限開放的頁麵  /246
         ∣10.3.3  創建需要權限驗證的頁麵  /247
         ∣10.3.4  配置Spring Security  /247
         ∣10.3.5  創建登錄頁麵  /248
         ∣10.3.6  測試權限  /249
         10.4  權限控製方式  /249
         ∣10.4.1  Spring EL權限錶達式  /249
         ∣10.4.2  通過錶達式控製URL權限  /250
         ∣10.4.3  通過錶達式控製方法權限  /252
         ∣10.4.4  【實例37】使用JSR∣250注解  /254
         ∣10.4.5  【實例38】實現RBAC權限模型  /256
         10.5  認識JWT  /258
         10.6  【實例39】用JWT技術為Spring Boot的API增加認證和授權保護  /260
         ∣10.6.1  配置安全類  /260
         ∣10.6.2  處理注冊  /261
         ∣10.6.3  處理登錄  /262
         ∣10.6.4  測試多方式注冊和登錄  /264
         ∣10.6.5  測試token方式登錄和授權  /265
         10.7  Shiro——Apache通用安全框架  /266
         ∣10.7.1  認識Shiro安全框架  /266
         ∣10.7.2  認識Shiro的核心組件  /267
         10.8  【實例40】用Shiro實現管理後颱的動態權限功能  /267
         ∣10.8.1  創建實體  /267
         ∣10.8.2  實現視圖模闆  /270
         ∣10.8.3  進行權限配置  /271
         ∣10.8.4  實現認證身份功能  /271
         ∣10.8.5  測試權限  /272
         10.9   對比Spring Security與Shiro  /273
         第11章  集成Redis,實現高並發  /275
         11.1  認識Spring Cache  /275
         ∣11.1.1  聲明式緩存注解  /276
         ∣11.1.2  【實例41】用Spring Cache進行緩存管理  /278
         ∣11.1.3  整閤Ehcache  /281
         ∣11.1.4  整閤Caffeine  /281
         11.2  認識Redis  /282
         ∣11.2.1  對比Redis與Memcached  /282
         ∣11.2.2  Redis的適用場景  /285
         11.3  Redis的數據類型  /285
         11.4  用RedisTemplate操作Redis的5種數據類型  /287
         ∣11.4.1  認識opsFor方法  /287
         ∣11.4.2  【實例42】操作字符串  /287
         ∣11.4.3  【實例43】操作散列  /290
         ∣11.4.4  【實例44】操作列錶  /294
         ∣11.4.5  【實例45】操作集閤  /298
         ∣11.4.6  【實例46】操作有序集閤  /301
         ∣11.4.7  比較RedisTemplate和StringRedisTemplate  /306
         11.5  【實例47】用Redis和MyBatis完成緩存數據的增加、刪除、修改、查詢功能  /306
         ∣11.5.1  在Spring Boot中集成Redis  /306
         ∣11.5.2  配置Redis類  /307
         ∣11.5.3  創建測試實體類  /308
         ∣11.5.4  實現實體和數據錶的映射關係  /309
         ∣11.5.5  創建Redis緩存服務層  /309
         ∣11.5.6  完成增、刪、改、查測試API  /310
         11.6  【實例48】用Redis和JPA實現緩存文章和點擊量  /311
         ∣11.6.1  實現緩存文章  /311
         ∣11.6.2  實現統計點擊量  /312
         ∣11.6.3  實現定時同步  /312
         11.7  【實例49】實現分布式Session  /313
         ∣11.7.1  用Redis實現Session共享  /313
         ∣11.7.2  配置Nginx實現負載均衡  /314
         第12章  集成RabbitMQ,實現係統間的數據交換  /316
         12.1  認識RabbitMQ  /316
         ∣12.1.1  介紹RabbitMQ  /316
         ∣12.1.2  使用場景  /317
         ∣12.1.3  特性  /318
         12.2  RabbitMQ的基本概念  /318
         ∣12.2.1  生産者、消費者和代理  /318
         ∣12.2.2  消息隊列  /319
         ∣12.2.3  交換機  /319
         ∣12.2.4  綁定  /320
         ∣12.2.5  通道  /321
         ∣12.2.6  消息確認  /321
         12.3  RabbitMQ的6種工作模式  /321
         ∣12.3.1  簡單模式  /321
         ∣12.3.2  工作隊列模式  /321
         ∣12.3.3  交換機模式  /322
         ∣12.3.4  Routing轉發模式  /322
         ∣12.3.5  主題轉發模式  /322
         ∣12.3.6  RPC模式  /323
         12.4  認識AmqpTemplate接口  /323
         ∣12.4.1  發送消息  /324
         ∣12.4.2  接收消息  /324
         ∣12.4.3  異步接收消息  /325
         12.5  在Spring Boot中集成RabbitMQ  /325
         ∣12.5.1  安裝RabbitMQ  /325
         ∣12.5.2  界麵化管理RabbitMQ  /326
         ∣12.5.3  在Spring Boot中配置RabbitMQ  /327
         12.6  在Spring Boot中實現RabbitMQ的4種發送/接收模式  /328
         ∣12.6.1  【實例50】實現發送和接收隊列  /328
         ∣12.6.2  【實例51】實現發送和接收對象  /330
         ∣12.6.3  【實例52】實現用接收器接收多個主題  /331
         ∣12.6.4  【實例53】實現廣播模式  /334
         12.7  【實例54】實現消息隊列延遲功能  /336
         第13章  集成NoSQL數據庫,實現搜索引擎  /339
         13.1  Elasticsearch——搜索應用服務器  /339
         ∣13.1.1  什麼是搜索引擎  /339
         ∣13.1.2  用數據庫實現搜索功能  /339
         ∣13.1.3  認識Elasticsearch  /343
         ∣13.1.4  Elasticsearch應用案例  /343
         ∣13.1.5  對比Elasticsearch與MySQL  /343
         ∣13.1.6  認識ElasticSearchRepository  /344
         ∣13.1.7  認識ElasticsearchTemplate  /345
         ∣13.1.8  認識注解@Document  /345
         ∣13.1.9  管理索引  /347
         13.2  【實例55】用ELK管理Spring Boot應用程序的日誌  /348
         ∣13.2.1  安裝Elasticsearch  /348
         ∣13.2.2  安裝Logstash  /349
         ∣13.2.3  安裝Kibana  /350
         ∣13.2.4  配置Spring Boot項目  /350
         ∣13.2.5  創建日誌計劃任務  /351
         ∣13.2.6  用Kibana查看管理日誌  /352
         13.3  【實例56】在Spring Boot中集成Elasticsearch,實現增、刪、改、查功能  /353
         ∣13.3.1  集成Elasticsearch  /353
         ∣13.3.2  創建實體  /353
         ∣13.3.3  實現增、刪、改、查文檔的功能  /355
         13.4  Elasticsearch查詢  /356
         ∣13.4.1  自定義方法  /356
         ∣13.4.2  精準查詢  /357
         ∣13.4.3  模糊查詢  /359
         ∣13.4.4  範圍查詢  /362
         ∣13.4.5  組閤查詢  /362
         ∣13.4.6  分頁查詢  /363
         ∣13.4.7  聚閤查詢  /364
         13.5  【實例57】實現産品搜索引擎  /365
         13.6  Solr——搜索應用服務器  /367
         ∣13.6.1  瞭解Solr  /367
         ∣13.6.2  安裝配置Solr  /367
         ∣13.6.3  整閤Spring Boot和Solr  /368
         13.7  【實例58】在Sping Boot中集成Solr,實現數據的增、刪、改和查  /369
         ∣13.7.1  創建User類  /369
         ∣13.7.2  測試增、刪、改、查功能  /369
         13.8  對比Elasticsearch和Solr  /372
         ∣
         +++++++++項目實戰篇
         第14章  開發企業級通用的後颱係統  /376
         14.1  用JPA實現實體間的映射關係  /376
         ∣14.1.1  創建用戶實體  /376
         ∣14.1.2  創建角色實體  /377
         ∣14.1.3  創建權限實體  /378
         14.2  用Spring Security實現動態授權(RBAC)功能  /380
         ∣14.2.1  實現管理(增、刪、改、查)管理員角色功能  /380
         ∣14.2.2  實現管理權限功能  /381
         ∣14.2.3  實現管理管理員功能  /383
         ∣14.2.4  配置安全類  /384
         ∣14.2.5  實現基於RBAC權限控製功能  /386
         14.3  監控Spring Boot應用  /387
         ∣14.3.1  在Spring Boot中集成Actuator  /387
         ∣14.3.2  在Spring Boot中集成Spring Boot Admin應用監控  /390
         ∣14.3.3  在Spring Boot中集成Druid 連接池監控  /392
         第15章  實現一個類似“京東”的電子商務商城  /394
         15.1  用Spring Security實現會員係統  /394
         ∣15.1.1  實現會員實體  /394
         ∣15.1.2  實現會員接口  /395
         ∣15.1.3  實現用戶名、郵箱、手機號多方式注冊功能  /396
         ∣15.1.4  實現用RabbitMQ發送會員注冊驗證郵件  /398
         ∣15.1.5  實現用戶名、郵箱、手機號多方式登錄功能  /399
         15.2  整閤會員係統(Web、APP多端、多方式注冊登錄)和後颱係統  /400
         ∣15.3  實現購物係統  /401
         ∣15.3.1  設計數據錶  /401
         ∣15.3.2  實現商品展示功能  /402
         ∣15.3.3  實現購物車功能  /403
         ∣15.3.4  用Redis實現購物車數據持久化  /404
         15.4  用Redis實現分布式秒殺係統  /406
         ∣15.4.1  實現搶購功能,解決並發超賣問題  /406
         ∣15.4.2  緩存頁麵和限流  /409
         15.5  用RabbitMQ實現訂單過期取消功能  /409
         15.6  實現結算和支付功能  /411
         ∣15.6.1  實現結算生成訂單功能  /411
         ∣15.6.2  集成支付  /412
      · · · · · ·     (
收起)