內容簡介
本書先逐步介紹Spring Boot開發的基礎知識;包括Spring Boot的簡介、開發起步、相關註解介紹和Web套用開發、資料庫訪問、資料庫訪問、Web服務開發、數據處理、檔案套用、WebFlux開發以及示例代碼。然後結合一個簡單案例演示了Spring Boot開發的全過程。本書內容由淺入深,結合示例介紹各個知識點,按照開發步驟的方式組織內容;可以幫助讀者更好地理解、掌握Spring Boot開發技術。 本書內容通俗易懂,適合Spring Boot開發的初學者(特別是在校學生)、Web套用開發者和企業級套用開發愛好者等讀者;可以作為大學課程的教學用教材、自學的入門讀物、開發過程的參考書。
圖書目錄
第1章 Spring Boot簡介 1
1.1 Spring Boot的發展背景 1
1.1.1 Spring的發展 1
1.1.2 Spring的生態圈 2
1.1.3 Spring Boot的發展 3
1.2 Spring Boot的特徵 4
1.2.1 Spring Boot的特點 4
1.2.2 Spring Boot 2的新特性 4
1.2.3 Spring Boot 2的核心模組 5
1.3 Spring Boot的工作機制 7
1.3.1 Spring Boot套用啟動入口類的分析 7
1.3.2 Spring Boot 2的幕後工作 8
1.3.3 SpringApplication的執行流程 8
1.3.4 Spring Boot套用啟動時控制台輸出信息 9
習題1 9
第2章 Spring Boot開發起步 10
2.1 配置開發環境 10
2.1.1 安裝JDK 10
2.1.2 安裝IntelliJ IDEA 11
2.1.3 安裝Spring Tool Suite 11
2.2 創建項目 13
2.2.1 利用IDEA創建項目 13
2.2.2 利用STS創建項目 16
2.3 實現Hello World的Web套用 17
2.3.1 用IDEA實現Hello World的Web套用 17
2.3.2 用STS實現Hello World的Web套用 19
2.4 以Hello World套用為例說明項目屬性配置 19
2.4.1 配置項目內置屬性 19
2.4.2 自定義屬性設定 20
2.4.3 利用自定義配置類進行屬性設定 21
2.5 Spring Boot開發的一般步驟 23
2.5.2 Spring Boot開發步驟 24
習題2 24
第3章 Spring Boot的相關註解 26
3.1 Java註解 26
3.1.1 Java註解的介紹 26
3.1.2 Java的元註解 27
3.1.3 Java預置的基本註解 30
3.2 Spring註解及註解注入 31
3.2.1 Spring基礎註解 31
3.2.2 Spring常見註解 31
3.2.3 Spring的註解注入 35
3.3 Spring Boot的註解 36
3.3.1 Spring Boot基礎註解 36
3.3.2 JPA註解 37
3.3.3 異常處理註解 38
3.3.4 註解配置解析和使用環境 38
習題3 39
第4章 Spring Boot的Web套用開發 40
4.1 實現靜態Web頁面 40
4.1.1 創建類GreetingController 40
4.1.2 創建檔案index.html 41
4.1.3 運行程式 41
4.2 實現基於Thymeleaf的Web套用 42
4.2.1 添加依賴 42
4.2.2 修改類GreetingController 42
4.2.3 創建檔案hi.html 43
4.2.4 運行程式 43
4.3 Thymeleaf的語法與使用 44
4.3.1 Thymeleaf基礎知識 44
4.3.2 Thymeleaf的標準表達式 44
4.3.3 Thymeleaf的表達式對象 45
4.3.4 Thymeleaf設定屬性 46
4.3.5 Thymeleaf的疊代和條件語句 48
4.3.6 Thymeleaf模板片段的定義和引用 49
4.4 實現基於Freemarker的Web套用 50
4.4.1 添加依賴 50
4.4.2 創建類TemplateController 50
4.4.3 創建檔案helloFtl.ftl 50
4.4.4 運行程式 51
4.5 Spring Boot對Ajax的套用 51
4.5.1 創建類HelloWorldAjaxController 51
4.5.2 創建檔案index.html 52
4.5.3 運行程式 52
4.6 Spring Boot實現RESTful風格Web套用 53
4.6.1 創建類BlogController 53
4.6.2 創建檔案index.html 54
4.6.3 創建檔案blog.html 54
4.6.4 創建檔案query.html 55
4.6.5 運行程式 55
4.7 帶Bootstrap和jQuery的Web套用 56
4.7.1 添加依賴 56
4.7.2 創建類Person 56
4.7.3 創建類BJController 57
4.7.4 添加輔助檔案 58
4.7.5 創建檔案index.html 58
4.7.6 運行程式 60
4.8 使用Servlet、過濾器、監聽器和攔截器 60
4.8.1 創建類MyServlet1 61
4.8.2 修改入口類1 62
4.8.3 運行程式1 62
4.8.4 創建類MyServlet2 62
4.8.5 修改入口類2 63
4.8.6 運行程式2 64
4.8.7 創建類MyFilter 64
4.8.8 創建類MyServletContextListener 65
4.8.9 創建類MyHttpSessionListener 65
4.8.10 運行程式3 65
4.8.11 創建類MyInterceptor1 66
4.8.12 創建類MyInterceptor2 67
4.8.13 創建類MyWebAppConfigurer 67
4.8.14 運行程式4 68
習題4 68
第5章 Spring Boot的資料庫訪問 70
5.1 使用JDBC訪問H2資料庫 71
5.1.1 添加依賴 71
5.1.2 創建類Customer 71
5.1.3 修改入口類 72
5.1.4 修改配置檔案application.properties 73
5.1.5 運行程式 74
5.2 使用Spring Data JPA訪問H2資料庫 75
5.2.1 添加依賴 75
5.2.2 創建類User 76
5.2.3 創建接口UserRepository 76
5.2.4 修改入口類 77
5.2.5 修改配置檔案application.properties 78
5.2.6 運行程式 78
5.2.7 程式擴展 79
5.3 使用Spring Data JPA和RESTful訪問H2資料庫 80
5.3.1 添加依賴 80
5.3.2 創建類Person 80
5.3.3 創建接口PersonRepository 81
5.3.4 修改配置檔案application.properties 82
5.3.5 啟動程式並進行REST服務測試 82
5.4 使用Spring Data JPA訪問MySQL資料庫 84
5.4.1 添加依賴 84
5.4.2 創建類User和接口UserRepository 85
5.4.3 修改配置檔案和入口類 85
5.4.4 運行程式 86
5.4.5 程式擴展 86
5.5.1 添加依賴 88
5.5.2 創建類Person 88
5.5.3 創建接口PersonRepository 89
5.5.4 修改入口類 90
5.5.5 運行程式 91
5.5.6 程式擴展 92
5.5.7 使用REST方法訪問MongoDB 93
5.6 訪問Neo4j資料庫 95
5.6.1 添加依賴 95
5.6.2 創建類Actor 95
5.6.3 創建接口ActorRepository 97
5.6.4 修改配置檔案application.properties 97
5.6.5 修改入口類 97
5.6.6 運行程式 98
5.6.7 利用REST方法訪問Neo4j 99
5.7 訪問資料庫完整示例 103
5.7.1 添加依賴 103
5.7.2 創建類Book 103
5.7.3 創建接口BookDao 104
5.7.4 修改配置檔案application.properties 104
5.7.5 創建類BookController 105
5.7.6 創建檔案bookAdd.html 107
5.7.7 創建檔案bookList.html 108
5.7.8 創建檔案bookUpdate.html 108
5.7.9 運行程式 109
習題5 112
第6章 Spring Boot的Web服務開發 113
6.1 基於Jersey實現RESTful風格
Web服務 113
6.1.1 添加依賴 113
6.1.2 創建類Constant 114
6.1.3 創建類JerseyController 114
6.1.4 創建類JerseyConfig 115
6.1.5 修改入口類 116
6.1.6 運行程式 116
6.1.7 補充說明 117
6.2 使用RESTful風格Web服務 118
6.2.1 網上已有Web服務random的說明 118
6.2.2 創建類Quote 118
6.2.3 創建類Value 119
6.2.4 修改入口類 120
6.2.5 運行程式 121
6.3 使用帶AngularJS的RESTful風格Web服務 121
6.3.1 添加依賴和輔助檔案 121
6.3.2 創建檔案ajs.html 121
6.3.3 運行程式 122
6.4 基於Actuator實現RESTful風格Web服務 123
6.4.1 添加依賴 123
6.4.2 創建類Greeting 123
6.4.3 創建類GreetingController 124
6.4.4 修改配置檔案application.properties 124
6.4.5 運行程式 124
6.5 實現跨域資源共享的RESTful風格Web服務 125
6.5.1 添加依賴 125
6.5.2 創建類CORSConfiguration 125
6.5.3 創建類ApiController 126
6.5.4 創建檔案CORSjs.html 126
6.5.5 運行程式 127
6.6 實現超媒體驅動的RESTful風格Web服務 128
6.6.1 添加依賴 128
6.6.2 創建類Greet 129
6.6.3 創建類GreetController 129
6.6.4 運行程式 130
6.7 整合CXF的Web服務開發 130
6.7.1 修改檔案pom.xml 131
6.7.2 創建類User 132
6.7.3 創建接口UserService 133
6.7.4 創建類UserServiceImpl 134
6.7.5 創建類TestConfig 135
6.7.6 運行程式 135
6.7.7 創建類Client並運行程式 136
習題6 137
第7章 Spring Boot的數據處理 138
7.1.1 添加依賴 138
7.1.2 創建類Account 139
7.1.3 創建接口AccountDao 140
7.1.4 創建接口AccountService 140
7.1.5 創建類AccountController 140
7.1.6 創建配置檔案application.yml 141
7.1.7 創建類AccountServiceImpl 141
7.1.8 運行程式 142
7.2 數據快取 143
7.2.1 添加依賴 144
7.2.2 創建類DemoInfo 144
7.2.3 創建接口DemoInfoRepository 145
7.2.4 創建接口DemoInfoService 146
7.2.5 創建類DemoInfoServiceImpl 146
7.2.6 創建類DemoInfoController 147
7.2.7 創建配置檔案後運行程式 148
7.3 使用Druid 149
7.3.1 添加依賴 149
7.3.2 創建類DruidStatViewServlet 150
7.3.3 創建類DruidStatFilter 151
7.3.4 修改入口類 151
7.3.5 運行程式 151
7.3.6 擴展程式並運行程式 152
7.4 使用表單驗證 154
7.4.1 添加依賴 154
7.4.2 創建類Student 155
7.4.3 創建接口StudentDao 156
7.4.4 創建接口StudentService 156
7.4.5 創建類StudentServiceImpl 156
7.4.6 創建類StudentController 157
7.4.7 創建檔案studentAdd.html 157
7.4.8 創建配置檔案並運行程式 158
7.5 整合MyBatis訪問資料庫 159
7.5.1 添加依賴 159
7.5.2 創建類City 160
7.5.3 創建接口CityDao 161
7.5.4 創建接口CityService 161
7.5.5 創建類CityServiceImpl 161
7.5.6 創建類CityController 162
7.5.7 修改配置檔案application.properties 162
7.5.8 運行程式 163
7.6 整合Spring Batch和Quartz 163
7.6.1 添加依賴 163
7.6.2 創建類MyTaskOne 164
7.6.3 創建類MyTaskTwo 164
7.6.4 創建類BatchConfig 165
7.6.5 修改入口類 166
7.6.6 運行程式 167
7.6.7 增加依賴 167
7.6.8 修改類BatchConfig 167
7.6.9 創建類CustomQuartzJob 168
7.6.10 創建類QuartzConfig 170
7.6.11 創建檔案quartz.properties和application.properties 172
7.6.12 修改入口類 173
7.6.13 運行程式 173
習題7 174
第8章 Spring Boot的檔案套用 175
8.1 檔案上傳 175
8.1.1 添加依賴 175
8.1.2 創建類FileUploadController 176
8.1.3 創建檔案file.html 177
8.1.4 創建檔案multifile.html 178
8.1.5 運行程式 178
8.1.6 擴展程式 179
8.2 檔案下載 180
8.2.1 添加依賴 180
8.2.2 創建類FileDownloadController 180
8.2.3 創建檔案downloadfile.html 182
8.2.4 運行程式 182
8.3 圖片檔案上傳和顯示 182
8.3.1 添加依賴 182
8.3.2 創建類User 183
8.3.3 創建接口UserRepository 184
8.3.4 創建類MyWebConfig 184
8.3.5 創建類UserPictureController 185
8.3.6 創建檔案zhuce.html 186
8.3.7 創建檔案permanager.html 186
8.3.8 創建配置檔案application.yml 187
8.3.9 創建目錄並運行程式 187
8.4 訪問HDFS 188
8.4.1 添加依賴 188
8.4.2 修改入口類 189
8.4.3 運行程式 189
8.4.4 簡化程式 190
8.5 用Elasticsearch實現全文搜尋 190
8.5.1 安裝Elasticsearch並添加依賴 190
8.5.2 創建類EsBlog 191
8.5.3 創建接口EsBlogRepository 192
8.5.4 創建類EsBlogRepositoryTest 192
8.5.5 修改配置檔案application.properties 194
8.5.6 運行程式(1) 194
8.5.7 創建類BlogController 194
8.5.8 運行程式(2) 195
8.6 實現郵件傳送 196
8.6.1 登錄信箱並開啟授權碼 196
8.6.2 添加依賴 196
8.6.3 創建接口EmailService 197
8.6.4 創建類EmailServiceImp 198
8.6.5 創建類DemoApplicationTests 200
8.6.6 修改配置檔案application.properties 201
8.6.7 創建檔案email.html 202
8.6.8 運行程式 202
8.7 用REST Docs創建API文檔 203
8.7.1 添加依賴 203
8.7.2 創建類HomeController 204
8.7.3 運行程式 204
8.7.4 創建類WebLayerTest 205
8.7.5 創建檔案index.adoc 206
8.7.6 添加外掛程式 206
8.7.7 利用Maven的package命令生成檔案 207
習題8 208
第9章 Spring Boot 的WebFlux開發 209
9.1 WebFlux及其編程模型 209
9.1.1 WebFlux 209
9.1.2 Spring Boot的WebFlux編程模型 210
9.2 WebFlux入門套用 211
9.2.1 添加依賴 211
9.2.2 創建類CityHandler 212
9.2.3 創建類CityRouter 212
9.2.4 運行程式 213
9.3 實現基於WebFlux的RESTful服務 213
9.3.1 添加依賴 213
9.3.2 創建類User 213
9.3.3 創建類UserController 214
9.3.4 運行程式 216
9.4 基於WebFlux訪問MongoDB資料庫 218
9.4.1 添加依賴 218
9.4.2 安裝並啟動MongoDB資料庫 218
9.4.3 創建類Person 219
9.4.4 創建接口PersonRepository 219
9.4.5 創建類PersonController 220
9.4.6 修改配置檔案application.properties 220
9.4.7 運行程式 221
9.5 基於WebFlux使用Thymeleaf和MongoDB 221
9.5.1 添加依賴 221
9.5.2 創建類City 222
9.5.3 創建接口CityRepository 223
9.5.4 創建類CityHandler 223
9.5.5 創建類CityController 224
9.5.6 創建檔案cityList.html 226
9.5.7 創建檔案city.html 226
9.5.8 運行程式 227
9.6 基於WebFlux訪問Redis資料庫 228
9.6.1 添加依賴 228
9.6.2 創建類Coffee 229
9.6.3 創建類CoffeeConfiguration 229
9.6.4 創建類CoffeeLoader 230
9.6.5 運行程式 231
9.6.6 創建類City 231
9.6.7 創建類CityWebFluxController 232
9.6.8 修改配置檔案application.properties 233
9.6.9 運行程式 233
9.6.10 創建類CityWebFluxReactiveController 234
9.7 基於WebFlux使用WebSocket 235
9.7.1 添加依賴 235
9.7.2 創建類EchoHandler 236
9.7.3 創建類WebSocketConfiguration 236
9.7.4 創建類WSClient 237
9.7.5 創建檔案websocket-client.html 238
9.7.6 運行程式 238
習題9 239
第10章 Spring Boot開發案例 240
10.1 案例分析 240
10.1.1 主要界面 240
10.1.2 主要功能與資料庫介紹 243
10.2 案例實現 244
10.2.1 添加依賴 244
10.2.2 創建類User、CourseType和Course 245
10.2.3 創建Service接口 249
10.2.4 創建Service接口實現類 250
10.2.5 創建Mapper接口 253
10.2.6 創建類WebLogAspect 254
10.2.7 創建類CourseQueryHelper 255
10.2.8 創建控制器類 256
10.2.9 修改入口類 262
10.2.10 創建XML檔案 263
10.2.11 創建HTML檔案 266
10.2.12 修改和創建配置檔案 283
10.2.13 創建CSS檔案 284
10.2.14 配置輔助檔案與運行程式 287
習題10 287
參考文獻 288