
image.png
- Spring Boot 簡介 15
1.1. 從 Spring 到Spring Boot 16
1.1.1. 從 EJB 到 Spring 16
1.1.2. Spring 框架發(fā)展簡史 19
1.1.3. Spring 框架的核心模塊 21
1.1.4. Spring 新生態(tài) 28
1.2. Spring Boot 是什么 29
1.3. Spring Boot 框架組成 30
1.3.1. spring-boot 31
1.3.2. spring-boot-starters 31
1.3.3. spring-boot-autoconfigure 31
1.3.4. spring-boot-actuator 32
1.3.5. spring-boot-tools 32
1.3.6. spring-boot-cli 32
1.4. Spring Boot 極簡特性 32
1.5. 約定優(yōu)于配置極簡化理念 34
1.6. Spring 5.0 新特性 36
1.7. Spring Boot 2.0 新特性 36
1.8. Spring Cloud 簡介 36
1.9. 最新IntelliJ IDEA 2017.3版本特性 36
1.10. 本章小結(jié) 36 - 快速開始 HelloWorld 36
2.1. 創(chuàng)建 Spring Boot 項目 36
2.2. Spring Boot 項目的入口類 42
2.3. 添加 HelloWorldController 44
2.4. Spring Boot應(yīng)用級注解 @SpringBootApplication 47
2.4.1. Spring Boot配置類注解 @SpringBootConfiguration 48
2.4.2. XML 配置文件 VS. JavaConfig 注解配置 49
2.4.3. 啟用自動配置注解 @EnableAutoConfiguration 50
2.4.4. 組件掃描注解 @ComponentScan 51
2.4.5. 導入配置類注解 @Import 52
2.5. 本章小結(jié) 52 - 深入理解Spring Boot 自動配置 53
3.1. 傳統(tǒng) SSM 開發(fā)回顧 53
3.1.1. 創(chuàng)建 Maven 工程 53
3.1.2. 添加源代碼和資源目錄 58
3.1.3. 引入項目依賴的JAR包 60
3.1.4. 配置 Spring 上下文spring.xml 63
3.1.5. 配置 SpringMVC 的上下文spring-mvc.xml 66
3.1.6. DispatcherServlet在web.xml中的配置 68
3.1.7. 完整的 web.xml 配置 68
3.1.8. mybatis-generator配置 73
3.1.9. 數(shù)據(jù)庫表結(jié)構(gòu) 74
3.1.10. MapperScanner和SqlSessionFactoryBean配置 75
3.1.11. Service 層和 Controller 層代碼 80
3.1.12. 配置 Tomcat 服務(wù)器 84
3.1.13. 視圖模板層代碼 87
3.2. Spring 簡化 XML 配置的解決方案 91
3.3. 自動配置的 Spring Boot 93
3.3.1. 條件注解 @Conditional 93
3.3.2. @Conditional注解使用實例 93
3.3.3. 常見條件注解 105
3.3.4. 組合注解 106
3.4. Spring Boot Starters 106
3.5. @EnableAutoConfiguration自動配置原理 108
3.5.1. 自動配置過程 108
3.5.2. spring.factories文件 110
3.5.3. getCandidateConfigurations 方法 117
3.6. FreeMarkerAutoConfiguration自動配置實例分析 118
3.6.1. spring-boot-starter-freemarker工程 118
3.6.2. spring-boot-autoconfigure工程 120
3.7. Spring Boot Autoconfigure 工作原理圖 125
3.8. 本章小結(jié) 126 - Spring Boot 命令行 CLI 127
4.1. 安裝 CLI 127
4.2. 快速開始Hello World 128
4.3. spring命令 131
4.4. 使用@Grab注解下載依賴 133
4.5. beans Groovy DSL 134
4.6. 創(chuàng)建項目命令 spring init 135
4.7. 本章小結(jié) 138 - Spring Boot 集成 MyBatis數(shù)據(jù)庫層開發(fā) 138
5.1. Java EE 的分層模型 139
5.1.1. 模型層 141
5.1.2. 數(shù)據(jù)訪問對象層 141
5.1.3. 業(yè)務(wù)邏輯層 141
5.1.4. 控制器層 141
5.1.5. 視圖層 141
5.2. MyBatis 簡介 141
5.2.1. 概述 142
5.2.2. MyBatis 框架組成 143
5.2.3. 接口層 143
5.2.4. 數(shù)據(jù)處理層 147
5.2.5. 基礎(chǔ)設(shè)施層 152
5.3. 項目實戰(zhàn) 164
5.3.1. 使用 Spring Boot CLI 創(chuàng)建工程 164
5.3.2. 配置application.properties 176
5.3.3. 使用IDEA 中自帶的連接數(shù)據(jù)庫客戶端 177
5.3.4. 使用 MyBatis Generator 生成 Dao 層代碼 178
5.3.5. 配置MyBatis同時使用 Mapper.xml和注解 183
5.3.6. 使用 MyBatis分頁 插件pagehelper 186
5.3.7. 實現(xiàn)查詢接口 186
5.3.8. 使用@Select注解 187
5.3.9. Mybatis插件機制 190
5.3.10. 實現(xiàn)分頁接口 192
5.3.11. PageHelper工作原理 197
5.3.12. 多表關(guān)聯(lián)查詢級聯(lián) 206
5.4. 本章小結(jié) 211 - Spring Boot 集成 JPA數(shù)據(jù)庫層開發(fā) 212
6.1. JPA是什么 212
6.1.1. JPA 簡介 212
6.1.2. JPA 整體架構(gòu) 212
6.1.3. JPA 生態(tài) 214
6.1.4. JPA 技術(shù)棧 217
6.1.5. ORM 框架概述 217
6.2. Hibernate 簡介 219
6.2.1. Hibernate 模塊組成 219
6.2.2. Hibernate整體架構(gòu) 219
6.2.3. Hibernate 特性 226
6.2.4. Hibernate 與 MyBatis 簡單對比 228
6.3. Spring Data JPA簡介 228
6.3.1. Spring Data 項目 229
6.3.2. Spring Data JPA概述 232
6.4. 項目實戰(zhàn) 232
6.4.1. Spring Data JPA提供的接口 232
6.4.2. 創(chuàng)建項目 233
6.4.3. 工程導入 IDEA 235
6.4.4. 配置數(shù)據(jù)庫 237
6.4.5. 自動生成 Entity 實體類代碼 238
6.4.6. 配置項目數(shù)據(jù)源信息 248
6.4.7. 實現(xiàn)查詢接口 248
6.4.8. 分頁查詢 253
6.4.9. 多表級聯(lián)查詢 256
6.4.10. 級聯(lián)類型CascadeType 259
6.4.11. 模糊搜索接口 261
6.4.12. JPQL語法基礎(chǔ) 263
6.4.13. JPA常用注解 269
6.5. 本章小結(jié) 271 - 開發(fā) Spring Boot Gradle插件實現(xiàn)自動化生成代碼腳手架 271
7.1. Gradle 簡介 272
7.1.1. Gradle 概述 272
7.1.2. Gradle 特性 273
7.1.3. Gradle 構(gòu)建生命周期 273
7.1.4. Gradle 倉庫 274
7.1.5. 約定優(yōu)于配置 275
7.1.6. 發(fā)布 Gradle 項目生成的構(gòu)件 275
7.1.7. Groovy 特點簡介 276
7.2. Gradle 插件 276
7.2.1. Gradle 插件概述 277
7.2.2. 常用 Gradle插件 277
7.2.3. java 插件 277
7.2.4. application 插件 280
7.3. 項目實戰(zhàn) 281
7.3.1. 創(chuàng)建項目 281
7.3.2. 添加依賴 287
7.3.3. 配置上傳本地Maven倉庫 287
7.3.4. 實現(xiàn) Plugin 288
7.3.5. 添加插件屬性配置 296
7.3.6. 運行測試 297
7.3.7. 在項目中使用kor插件 300
7.4. 本章小結(jié) 304 - Spring Boot 使用 Spring MVC 和FreeMarker開發(fā) Web 應(yīng)用 305
8.1. Spring MVC 簡介 305
8.1.1. Servlet 概述 305
8.1.2. MVC 簡介 310
8.1.3. Spring、Spring MVC 與 Spring Boot 2.0 312
8.1.4. Spring MVC 框架 313
8.2. Spring MVC 常用注解 317
8.3. 使用FreeMarker模板引擎 319
8.3.1. FreeMarker簡介 319
8.3.2. 實現(xiàn)一個分頁查詢頁面 320
8.4. 本章小結(jié) 330 - Spring Boot 自定義 SpringMVC配置 331
9.1. 配置父類WebMvcConfigurationSupport 331
9.2. 靜態(tài)資源處理配置類ResourceHandler 334
9.3. 攔截器配置類HandlerInterceptor 335
9.4. 跨域支持配置類CorsRegistry 337
9.5. 添加視圖控制器ViewController 338
9.6. 消息轉(zhuǎn)換器MessageConverter 338
9.7. 數(shù)據(jù)格式化器 Formatter 340
9.8. 視圖解析器ViewResolver配置 340
9.9. 全局異常處理ExceptionHandler 341
9.9.1. 使用 @ControllerAdvice + @ExceptionHandler實現(xiàn)統(tǒng)一異常處理 342
9.9.2. 實現(xiàn) HandlerExceptionResolver 接口 344
9.10. 定制與優(yōu)化內(nèi)置Tomcat容器 347
9.11. 定制 Spring Boot 應(yīng)用程序啟動 Banner 351
9.12. 本章小結(jié) 356 - Spring Boot注冊 Servlet、Filter 和 Listener 356
10.1. 創(chuàng)建項目 356
10.2. 注冊 Servlet 358
10.3. 注冊 Filter 362
10.4. 注冊 Listener 369
10.5. 本章小結(jié) 370 - Spring Boot AOP 面向切面編程 371
11.1. AOP 簡介 371
11.2. AOP 核心概念 372
11.3. Spring AOP介紹 374
11.4. 項目實戰(zhàn):實現(xiàn)日志切面 375
11.4.1. 創(chuàng)建項目 375
11.4.2. 添加 aop 依賴aspectjweaver 382
11.4.3. 切面邏輯實現(xiàn) 384
11.4.4. @Pointcut匹配表達式 385
11.4.5. 運行測試 386
11.5. 本章小結(jié) 387 - Spring Boot 使用 AOP + Filter實現(xiàn)用戶登錄鑒權(quán)與權(quán)限控制 387
12.1. 系統(tǒng)整體架構(gòu) 387
12.2. 創(chuàng)建工程 389
12.3. 數(shù)據(jù)庫表結(jié)構(gòu)設(shè)計 394
12.4. 用戶登錄邏輯 395
12.5. 登錄態(tài)鑒權(quán)過濾器 401
12.5.1. 用戶鑒權(quán)邏輯 401
12.5.2. 運行測試 404
12.5.3. 頁面展示用戶名 406
12.6. AOP實現(xiàn)用戶權(quán)限管理 407
12.6.1. 功能簡介 407
12.6.2. 實現(xiàn)權(quán)限控制 407
12.6.3. 無權(quán)限頁面 410
12.6.4. Pointcut切入點配置 410
12.6.5. 運行測試 411
12.7. 用戶注冊 412
12.7.1. 用戶注冊界面 412
12.7.2. 模板代碼 412
12.7.3. 前端js代碼 413
12.7.4. 后端注冊接口 413
12.7.5. 數(shù)據(jù)后端校驗 414
12.7.6. 獲取數(shù)據(jù)校驗結(jié)果 418
12.7.7. 運行測試 419
12.8. 本章小結(jié) 424 - Spring Boot 使用 Security 實現(xiàn)系統(tǒng)的安全認證與權(quán)限控制 424
13.1. Spring Security 簡介 425
13.1.1. Spring Security概述 425
13.1.2. 基于Form表單登陸認證 426
13.2. Spring Security 核心組件 427
13.2.1. SecurityContextHolder與Security Context 427
13.2.2. 獲取當前用戶的信息 428
13.2.3. 認證信息類Authentication 429
13.2.4. 認證管理器AuthenticationManager 430
13.2.5. 基于數(shù)據(jù)庫的認證DaoAuthenticationProvider 432
13.2.6. UserDetails與UserDetailsService 433
13.3. 項目實戰(zhàn) 435
13.3.1. 初階 Security: 默認認證用戶名密碼 435
13.3.2. 中階 Security:內(nèi)存用戶名密碼認證 441
13.3.3. 角色權(quán)限控制 445
13.3.4. 進階 Security: 基于數(shù)據(jù)庫的用戶和角色權(quán)限 453
13.4. 本章小結(jié) 477 - React.js + Spring Boot 開發(fā)前后端分離項目 477
14.1. 前后端分離架構(gòu) 478
14.1.1. 前端簡史 478
14.1.2. ECMAScript的歷史 478
14.1.3. 從后端走向前端 479
14.1.4. 前后端分離架構(gòu) 480
14.2. 項目實戰(zhàn) 481
14.2.1. 系統(tǒng)功能介紹 482
14.2.2. 實現(xiàn)登陸后端接口 483
14.2.3. 實現(xiàn)登陸前端頁面 486
14.2.4. 用戶登錄狀態(tài)接口 488
14.2.5. 實現(xiàn)列表展示后端接口 490
14.2.6. 實現(xiàn)列表展示前端頁面 491
14.2.7. 前后端集成配置 492
14.2.8. 前后端聯(lián)調(diào)測試 492
14.3. 本章小結(jié) 495 - Spring Boot 定時任務(wù) 496
15.1. 定時任務(wù)概述 496
15.2. 靜態(tài)定時任務(wù) 496
15.3. Cron 表達式 498
15.3.1. Cron簡介 498
15.3.2. Cron 表達式字段范圍 499
15.3.3. Cron 表達式特殊字符 499
15.3.4. 常用的 Cron 表達式 500
15.4. 動態(tài)定時任務(wù) 501
15.4.1. 實現(xiàn)SchedulingConfigurer接口 501
15.4.2. 從數(shù)據(jù)庫中讀取 cron 表達式值 502
15.4.3. 數(shù)據(jù)庫初始化數(shù)據(jù) 502
15.4.4. 多線程執(zhí)行 503
15.4.5. 添加多個任務(wù) 504
15.5. 本章小結(jié) 505 - Spring Boot 集成 Web Flux 開發(fā) Reactive Web 應(yīng)用 506
16.1. 響應(yīng)式宣言 506
16.2. Spring 5 響應(yīng)式Web框架架構(gòu)圖 506
16.3. 項目實戰(zhàn) 508
16.3.1. 創(chuàng)建項目 508
16.3.2. 項目結(jié)構(gòu) 511
16.3.3. 領(lǐng)域?qū)嶓w層 513
16.3.4. 服務(wù)層 514
16.3.5. 控制器路由層 515
16.3.6. Reactive Web服務(wù)器配置 516
16.3.7. 項目啟動入口類 517
16.3.8. 啟動運行 517
16.3.9. 測試輸出 518
16.4. 本章小結(jié) 519 - Spring Boot 應(yīng)用監(jiān)控:Actuator與 Admin 519
17.1. Actuator簡介 519
17.2. 啟用 Actuator 520
17.3. 揭秘Endpoint端點 522
17.3.1. /actuator獲取actuator 列表 522
17.3.2. /beans獲取 Bean 裝配信息 524
17.3.3. /conditions獲取自動配置條件信息 526
17.3.4. /configprops獲取配置屬性信息 527
17.3.5. /env系統(tǒng)運行環(huán)境信息 529
17.3.6. /info 應(yīng)用基本信息 532
17.3.7. /health 獲取應(yīng)用健康信息 532
17.3.8. /loggers系統(tǒng)日志信息 533
17.3.9. /threaddump系統(tǒng)線程轉(zhuǎn)儲信息 534
17.3.10. /metrics系統(tǒng)度量指標列表 536
17.3.11. /scheduledtasks系統(tǒng)定時任務(wù)信息 537
17.3.12. /trace系統(tǒng)請求跟蹤 538
17.3.13. /mappings系統(tǒng)請求 URL 映射信息 539
17.3.14. 啟用和禁用端點 541
17.4. 自定義Actuator Endpoint 543
17.4.1. Endpoint接口簡介 543
17.4.2. 實現(xiàn)Endpoint接口 547
17.4.3. 繼承AbstractEndpoint抽象類 549
17.4.4. 實現(xiàn)健康指標接口HealthIndicator 554
17.4.5. 實現(xiàn)度量指標接口PublicMetrics 555
17.4.6. SystemPublicMetrics成員方法簡介 556
17.4.7. 使用 AOP 實現(xiàn)CounterService、GaugeService接口統(tǒng)計方法執(zhí)行數(shù)據(jù) 559
17.5. 使用Spring Boot Admin可視化 Actuator 監(jiān)控數(shù)據(jù) 564
17.5.1. Spring Boot Admin簡介 564
17.5.2. 工作原理簡介 568
17.5.3. 創(chuàng)建Spring Boot Admin Server 項目 569
17.5.4. 在 Client 端的 Spring Boot項目中配置使用Admin Server 571
17.6. 本章小結(jié) 579 - Spring Boot 應(yīng)用的測試 580
18.1. 項目準備工作 580
18.1.1. 創(chuàng)建項目 580
18.1.2. 導入項目到 IDEA 581
18.1.3. 設(shè)計項目目錄結(jié)構(gòu) 581
18.2. 項目配置 582
18.2.1. Gradle構(gòu)建配置文件 582
18.2.2. 項目屬性文件配置 584
18.3. 項目代碼開發(fā) 584
18.3.1. Entity 層代碼 584
18.3.2. Dao 層代碼 585
18.3.3. Service 層代碼 585
18.3.4. Controller 層代碼 586
18.4. 項目分層測試 586
18.4.1. 測試代碼目錄結(jié)構(gòu) 587
18.4.2. Dao 層測試 588
18.4.3. Service 層測試 589
18.4.4. 使用 Mockito 測試 Service 層代碼 590
18.4.5. Controller 層測試 592
18.4.6. JSON接口數(shù)據(jù)的測試斷言 596
18.5. 本章小結(jié) 600 - 使用 Docker 構(gòu)建部署運行 Spring Boot 應(yīng)用 600
19.1. 創(chuàng)建測試項目 600
19.2. 項目打包成可執(zhí)行 jar 603
19.3. 定制配置文件啟動應(yīng)用 606
19.4. 項目打包成 war 包 608
19.5. 生產(chǎn)運維 610
19.5.1. 查看JVM參數(shù)的值 610
19.5.2. 應(yīng)用重啟 611
19.6. 使用 Docker 構(gòu)建部署運行Spring Boot應(yīng)用 611
19.6.1. Docker 簡介 611
19.6.2. 環(huán)境搭建 613
19.7. Spring Boot 項目 Docker化實戰(zhàn) 617
19.7.1. 添加 docker 構(gòu)建插件 618
19.7.2. 配置 Dockerfile 文件創(chuàng)建自定義的鏡像 618
19.7.3. Dockerfile配置說明 620
19.7.4. 構(gòu)建自定義的應(yīng)用 Docker鏡像 623
19.7.5. 啟動 Docker 應(yīng)用鏡像運行 623
19.7.6. 端口映射 624
19.7.7. 運行測試 626
19.8. 本章小結(jié) 627 - 附錄 I : Spring 5.0 新特性 628
- 附錄 II : Spring Boot 2.0 新特性 641
21.1.1. Kotlin 特性支持 641
21.1.2. Spring Boot 2.0.0 M1 Release Notes 642
21.1.3. Spring Boot 2.0.0 M2 Release Notes 648
21.1.4. Spring Boot 2.0.0 M3 Release Notes 651
21.1.5. Spring Boot 2.0.0 M4 Release Notes 652
21.1.6. Spring Boot 2.0.0 M5 Release Notes 655
21.1.7. Spring Boot 2.0.0 M6 Release Notes 657
21.1.8. Spring Boot 2.0.0 M7 Release Notes 660 - 附錄 III: Spring Cloud 簡介 664
- 附錄 IV:最新IntelliJ IDEA 2017.3版本特性 666
- 附錄 V:Spring Boot CLI 的 spring init 命令行支持項 667
新書上架:《Spring Boot 開發(fā)實戰(zhàn)》
— 基于 Kotlin + Gradle + Spring Boot 2.0 的企業(yè)級服務(wù)端開發(fā)實戰(zhàn)
京東下單鏈接
https://item.jd.com/31178320122.html
天貓下單鏈接
https://detail.tmall.com/item.htm?id=574928877711
