內容簡介
Spring是Java開發必不可少的框架,是一個龐大的生態系統,Spring Boot正是在Spring這一片肥沃的土壤中生長出來的快速套用開發框架。本書從Spring Boot的工程化組件入手,採用一步一示例的方式引導讀者入門,並通過兩個完整案例幫助讀者學會開發Spring Boot項目。本書配套源碼、PPT課件、教學視頻、思維導圖、開發環境與答疑服務。
本書共分12章。第1~3章介紹構建Spring Boot項目的步驟和Spring Boot Web開發的基礎;第4~9章介紹Spring Boot的多種框架或技術,比如JPA、MyBatis、Redis、Elasticsearch、日誌和安全監控等;第10~11章分別通過客戶管理系統和微博系統兩個簡單的項目,以鞏固讀者對Spring Boot基礎知識的學習;第12章介紹Spring Boot的測試、打包和項目部署功能。
本書從實用的角度出發,結合項目示例,在充分實踐的前提下儘量拓展知識廣度、減少知識盲點,非常適合時間緊張卻需要快速上手Spring Boot的初學者,也可作為高等院校、中職學校和培訓機構計算機軟體開發專業的教材。
作者簡介
郭浩然,長期從事Web開發,項目經驗豐富,擅長Java伺服器開發,精通Spring系列和持久層的多種框架,熟悉SQL和NoSQL多種資料庫。對技術保有一顆好奇心,喜歡研究新興技術,致力於做一名隨時代不斷進步技術大牛。
圖書目錄
第1章 從零起步搭建Spring Boot開發
環境 1
1.1 Spring Boot為什麼流行起來 1
1.1.1 Spring Boot的優點 1
1.1.2 Spring Boot的時代背景 2
1.2 搭建開發環境 2
1.2.1 使用Spring官方提供的初始化
工具 2
1.2.2 搭建Eclipse開發環境 5
1.2.3 搭建IntelliJ IDEA開發環境 9
1.3 Spring Boot的依賴管理和自動配置 11
1.3.1 依賴管理 12
1.3.2 自動配置 13
1.4 實戰——Spring Boot版本的
Hello World 15
第2章 工程項目使用Spring Boot的
步驟 18
2.1 構建項目 18
2.1.1 構建工具 18
2.1.2 Starter、JAR與依賴 19
2.1.3 再說依賴管理 22
2.2 組織代碼 23
2.2.1 不建議使用default package 23
2.2.2 放置套用的main類 24
2.3 配置類 24
2.3.1 導入其他配置類 24
2.3.2 導入XML配置 25
2.4 再說自動配置 25
2.4.1 用戶配置替換自動配置 25
2.4.2 指定禁用生效的自動配置類 26
2.5 Spring Bean與依賴注入 26
2.6 使用@SpringBootApplication註解 28
2.7 運行程式 28
2.7.1 在IDE中運行 29
2.7.2 打成JAR包運行 29
2.7.3 使用Maven外掛程式運行 30
2.7.4 使用Gradle外掛程式運行 30
2.7.5 熱部署 30
2.8 開發者工具 30
2.8.1 默認配置 31
2.8.2 自動重啟 31
2.8.3 使用LiveReload自動刷新 34
2.8.4 全局設定 34
2.9 打包套用到生產環境 34
2.10 實戰——使用Maven創建完整的
工程項目 34
第3章 使用Spring Boot進行Web開發 39
3.1 模板引擎 39
3.2 使用Thymeleaf開發示例 40
3.3 上傳檔案 43
3.3.1 POM檔案配置 43
3.3.2 參數設定 43
3.3.3 編寫前端頁面 44
3.3.4 編寫處理上傳請求的
Controller類 44
3.3.5 從瀏覽器上傳檔案 45
3.4 使用定時任務 46
3.4.1 POM包配置 46
3.4.2 對自動配置參數的說明 46
3.4.3 編寫定時任務代碼 47
3.4.4 測試定時任務執行 48
3.5 傳送郵件 49
3.5.1 POM包配置 49
3.5.2 在application.properties中
添加信箱配置 49
3.5.3 編寫郵件Service類對框架
再封裝 50
3.5.4 編寫測試類進行測試 51
3.6 使用Shiro 52
3.6.1 基本配置 52
3.6.2 編寫業務邏輯代碼和頁面 53
3.6.3 在代碼中引入Shiro 55
3.6.4 測試用戶認證和許可權管理的
效果 58
3.7 實戰——開發一個簡單的Restful API
網關 59
第4章 使用Spring Boot進行資料庫
開發 64
4.1 配置數據源 64
4.1.1 啟動默認數據源 64
4.1.2 配置自定義數據源 65
4.2 使用JdbcTemplate運算元據庫 66
4.3 使用Spring Data JPA(Hibernate)
運算元據 67
4.3.1 基礎知識 67
4.3.2 依賴管理和配置信息 68
4.3.3 使用Spring Data JPA進行
開發 69
4.4 整合MyBatis框架 85
4.4.1 MyBatis簡介 85
4.4.2 MyBatis的配置 85
4.4.3 Spring Boot整合MyBatis 88
4.4.4 MyBatis的其他配置 89
4.5 實戰——商品信息管理小系統 90
第5章 Spring Boot與Redis 103
5.1 使用spring-data-redis操作Redis 103
5.1.1 Spring Data Redis項目的
設計 103
5.1.2 RedisTemplate與數據操作類的
使用 106
5.1.3 RedisCallback、SessionCallback
接口和Redis事務的使用 108
5.2 在Spring Boot中配置和使用Redis 109
5.2.1 通過Starter引入Redis相關依賴
並配置Redis 110
5.2.2 Redis數據類型及操作API 112
5.3 Redis的一些特殊用法 125
5.3.1 Redis事務 125
5.3.2 Redis Pipelined和Lua腳本 126
5.3.3 Redis發布訂閱 126
5.4 使用Spring快取註解操作Redis 127
5.4.1 啟用快取和配置快取管理器 127
5.4.2 使用快取註解開發 128
5.4.3 類實例方法類內部調用時的
失效問題 129
5.4.4 快取髒數據說明 130
5.5 實戰——用Redis改版商品信息管理
系統V2.0 130
5.5.1 引入Redis的依賴並配置Redis
服務地址和啟用快取 131
5.5.2 添加@Cacheable和@CacheEvict註解 131
5.5.3 運行程式測試快取效果 133
第6章 Spring Boot整合Elasticsearch 135
6.1 Elasticsearch的使用場景和相關
技術 135
6.2 spring-data-elasticsearch支持的
Elasticsearch Client 136
6.2.1 Elasticsearch的Client 136
6.2.2 創建RestHighLevelClient 136
6.3 使用operations相關API操作
Elasticsearch 137
6.3.1 4個Operations接口 137
6.3.2 搜尋結果類型 142
6.3.3 查詢條件的封裝 143
6.4 Repository的使用 145
6.4.1 使用註解管理索引實體類 145
6.4.2 查詢方法的定義 147
6.4.3 使用@Query註解定義查詢 148
6.5 在Spring Boot中配置
spring-data-elasticsearch 149
第7章 Spring Boot的日誌管理 150
7.1 常用的日誌框架 150
7.1.1 日誌實現 150
7.1.2 日誌門面 151
7.2 Spring Boot支持的日誌配置 152
7.2.1 Spring Boot默認支持的日誌
框架 152
7.2.2 自定義日誌配置 153
7.2.3 日誌框架的配置檔案 157
7.2.4 配置項匯總 157
7.2.5 日誌級別 159
7.2.6 日誌格式和內容 160
7.2.7 輸出到控制台 162
7.2.8 日誌組 163
7.3 輸出到日誌檔案的配置 164
7.3.1 配置輸出到日誌檔案 164
7.3.2 日誌滾動配置 165
7.4 配置檔案擴展 166
7.4.1 定義Profile的個性配置 166
7.4.2 引入Spring Environment
Property 167
第8章 Spring Boot的安全與監控 168
8.1 安全控制(使用Spring Security) 168
8.1.1 Spring Security的開啟和
配置 168
8.1.2 使用Spring Security 171
8.2 使用Actuator監控套用 178
8.2.1 開啟Actuator 178
8.2.2 默認配置 179
8.2.3 Actuator的安全控制 182
8.2.4 Health Endpoint的使用 186
8.2.5 Metrics Endpoint 190
8.2.6 自定義Endpoint 195
第9章 Spring Boot數據訪問 199
9.1 自動配置默認數據源 199
9.2 自定義一個或多個數據源 204
9.2.1 在使用默認數據源實例的
基礎上自定義配置 204
9.2.2 配置多個數據源 205
9.3 Spring Data JPA與數據源綁定 207
9.4 資料庫的初始化 211
9.4.1 基於SQL腳本初始化
資料庫 212
9.4.2 使用JPA和Hibernate時
初始化資料庫 213
第10章 項目實戰1——客戶管理
Web系統 214
10.1 梳理業務需求 214
10.2 技術實現設計 215
10.3 構建項目 216
10.3.1 使用Spring Initializr構建
項目 216
10.3.2 配置資料庫 220
10.4 創建資料庫表 221
10.5 開發客戶信息模組 222
10.5.1 開發系統首頁 222
10.5.2 開發添加客戶頁面和接口 223
10.5.3 開發客戶列表頁面和接口 228
10.5.4 開發編輯客戶信息頁面和
接口 232
10.6 開發交易信息模組 236
10.6.1 在系統首頁增加交易信息
導航 236
10.6.2 開發“創建交易”頁面和
接口 236
10.6.3 開發“交易列表”頁面 242
10.6.4 開發“編輯交易”頁面 243
10.6.5 開發標註發貨狀態功能 245
第11章 項目實戰2——個人部落格 249
11.1 梳理業務需求 249
11.2 技術實現設計 250
11.2.1 部落格模組 250
11.2.2 用戶模組 251
11.2.3 喜歡、取消喜歡部落格功能 252
11.3 構建項目 253
11.4 創建數據實體類 255
11.5 開發部落格模組 258
11.5.1 開發發布部落格接口和頁面 259
11.5.2 開發部落格列表接口和頁面 262
11.5.3 開發部落格詳情接口和頁面 264
11.5.4 實現瀏覽次數計數功能 266
11.6 開發用戶模組 267
11.6.1 開發登錄相關接口 267
11.6.2 完成登錄頁面 273
11.6.3 測試用戶登錄功能 276
11.6.4 在部落格列表頁面增加當前用戶
的顯示 277
11.6.5 個人主頁頁面 280
11.7 實現喜歡/取消喜歡部落格功能 283
11.7.1 開發“喜歡部落格”接口 283
11.7.2 開發“取消喜歡部落格”
接口 284
11.7.3 修改部落格詳情頁面接口,
返回當前用戶是否已喜歡 285
11.7.4 修改部落格詳情頁面,增加
喜歡/取消喜歡按鈕 286
11.7.5 頁面測試 287
11.8 配置Spring Security訪問規則 289
11.8.1 創建管理員用戶 289
11.8.2 配置接口的訪問許可權 290
11.8.3 配置僅管理員用戶可以發布
部落格 291
11.8.4 測試發布部落格許可權管理 293
第12章 Spring Boot項目的測試和
部署 295
12.1 配置的切換 295
12.1.1 在項目啟動時指定外部
配置檔案 295
12.1.2 Spring Profile的使用 299
12.2 Spring Boot的測試功能 301
12.2.1 構建測試類 301
12.2.2 測試的自動配置 305
12.3 打包和部署 308
12.3.1 打包(JAR和WAR) 308
12.3.2 運行項目 310