Spring Boot 2 實戰之旅

Spring Boot 2 實戰之旅

作者: 楊洋
出版社: 清華大學
出版在: 2019-08-01
ISBN-13: 9787302531623
ISBN-10: 7302531625





內容描述


Spring Boot框架是目前微服務框架的最佳選擇之一。本書採用Spring Boot 2.0.3版本講解,從零起步系統深入地剖析了Spring Boot的核心技術。從功能點出發,每一章都是不同的Spring Boot應用之旅。全書分為14章,第1章和第2章是學習Spring Boot的入門階段,從Spring Boot簡介到開發環境部署等,讓讀者對Spring Boot有一個初步的認識;第3章到第10章是Spring Boot的融合階段,介紹了Spring Boot搭建Web項目、操作數據庫、使用緩存、日誌、整合安全框架、結合消息隊列和搜索框架,這些都是日常開發中一定會用到的內容,經過這個階段的學習,會讓讀者熟練地運用Spring Boot進行敏捷開發。第11章和第12章是Spring Boot的拓展階段,主要介紹了Spring Boot的一些常用的功能和如何在實際應用中的部署。第13章和第14章是Spring Boot的實戰階段,經過這兩章的學習,使讀者對Spring Boot的運用更加熟練,掌握實際項目的開發技能。 本書的特點是示例代碼豐富,實用性和系統性較強,讀者可以直接還原書中的示例。本書適用於初學者、Java開發人員、Spring愛好者和架構師。


目錄大綱


第1章Spring Boot概述1
1.1 Spring Boot簡介1
1.2 Spring Boot的特點2
1.2.1快速構建項目2
1.2.2嵌入式Web容器3
1.2.3易於構建任何應用3
1.2.4自動化配置3
1.2. 5開發者工具4
1.2.6強大的應用監控4
1.2.7默認提供測試框架4
1.2.8可執行Jar部署4
1.2.9 IDE多樣性4
1.3為什麼要學習Spring Boot 5
1.3.1簡化工作5
1.3 .2微服務時代5
1.3.3社區背景強大6
1.3.4市場需求6
1.4 Spring Boot的發展歷史7
1.4.1發布里程碑(2013.8.6) 7
1.4.2 Spring Boot 1.0(2014.4) 7
1.4.3 Spring Boot 1.1(2014.6) 8
1.4.4 Spring Boot 1.2(2015.3) 8
1.4.5 Spring Boot 1.3(2016.12) 8
1.4.6 Spring Boot 1.4(2017.1) 8
1.4.7 Spring Boot 1.5(2017.2) 9
1.4.8 Spring Boot 2.0(2018.3) 9
1.5小結10
第2章走進Spring Boot 11
2.1環境搭建11
2.1.1 JDK安裝11
2.1.2 IntelliJ IDEA的安裝12
2.1.3 Maven的安裝12
2.1.4 IntelliJ IDEA內配置JDK和
Maven 15
2.2新建Spring Boot項目16
2.2.1開始創建項目16
2.2.2配置JDK版本和Initializr Service URL 17
2.2.3配置Project Metadata信息17
2.2.4配置Spring Boot版本及默認
引入組件18
2.2.5配置項目名稱和項目位置18
2.3項目工程介紹19
2.3.1 Java類文件20
2.3.2資源文件20
2.3.3測試類文件20
2.3.4 pom文件21
2.4運行項目22
2.5小結22
第3章Spring Boot的Web之旅23
3.1 Spring Boot的第一個Web項目23
3.1.1加入Web依賴23
3.1.2創建Controller 23
3.1.3測試運行24
3.2 WebFlux的使用25
3.2.1添加WebFlux依賴25
3.2.2創建一個處理方法類26
3.2.3創建一個Router類26
3.2.4測試運行27
3.3使用熱部署27
3.4配置文件28
3.4.1配置文件類型28
3.4.2自定義屬性28
3.4.3使用隨機數29
3.4.4多環境配置31
3.4.5自定義配置文件31
3.5使用頁面模板32
3.5.1使用Thymeleaf 32
3.5.2使用FreeMarker 35
3.5.3使用傳統JSP 37
3.6使用WebJars 39
3.7國際化使用41
3.8文件的上傳和下載44
3.9小結48
第4章Spring Boot的數據庫之旅49
4.1使用數據庫49
4.1.1使用MySQL數據庫49
4.1.2使用SQL Server數據庫50
4.1.3使用Oracle數據庫51
4.1.4使用MongoDB數據庫55
4.1.5使用Neo4j數據庫56
4.1.6使用Redis數據庫57
4.1.7使用Memcached數據庫58
4.2使用JDBC操作數據庫58
4.2.1 JDBC依賴配置59
4.2.2配置數據庫信息59
4.2.3創建實體類60
4.2.4使用Controller進行測試60
4.3使用JPA操作數據庫68
4.3.1 JPA介紹68
4.3.2 JPA依賴配置68
4.3.3配置文件69
4.3.4創建實體對象69
4.3.5創建數據操作層71
4.3.6簡單測試運行73
4.3.7 JPA擴展學習74
4.3.8基於WebFlux的使用75
4.4使用MyBatis操作數據庫80
4.4.1 MyBatis簡介80
4.4.2 MyBatis依賴配置80
4.4.3配置文件80
4.4.4基於XML的使用82
4.4.5基於註解使用85
4.4.6測試運行85
4.4.7 Mybatis-Generator插件學習87
4.4.8 PageHelper插件96
4.4.9 Mybatis-Plus插件97
4.5配置多數據源101
4.5.1多數據源情況分析102
4.5.2配置多數據源102
4.5.3基於JPA使用多數據源105
4.5.4基於MyBatis使用多數據106
4.6使用Druid數據庫連接池108
4.6.1 Druid簡介108
4.6.2配置Druid 109
4.6.3操作數據庫114
4.6.4 Druid監控頁面介紹115
4.7小結121
第5章Spring Boot的緩存之旅122
5.1使用Spring Cache 122
5.1.1 Spring Cache簡介122
5.1.2配置Spring Cache依賴124
5.1.3測試運行125
5.1 .4驗證緩存126
5.2使用Redis 127
5.2.1 Redis簡介127
5.2.2項目配置127
5.2.3測試運行129
5.2.4使用Redis緩存130
5.3使用Memcached 132
5.3.1 Memcached簡介132
5.3.2配置Memcached依賴132
5.3.3使用Memcached緩存137
5.3.4 Redis與Memcached的區別138
5.4小結138
第6章Spring Boot的日誌之旅139
6.1 Logback日誌139
6.1.1 Logback簡介139
6.1.2日誌格式140
6.1.3控制台輸出140
6.1.4日誌文件輸出141
6.1.5日誌級別141
6.1.6日誌配置142
6.1.7基於XML配置日誌142
6.2 Log4j日誌145
6.2.1 Log4j簡介146
6.2.2 Spring Boot使用Log4j 146
6.2.3控制台輸出146
6.2.4日誌文件輸出147
6.3 Log4j 2日誌148
6.3.1 Log4j 2簡介148
6.3.2 Spring Boot使用Log4j 2 150
6.3.3控制台輸出151
6.3.4日誌文件輸出152
6.3.5異步日誌152
6.4 ELK日誌收集155
6.4.1 ELK日誌收集流程介紹155
6.4.2 ELK安裝155
6.4.3 ELK配置157
6.4.4使用Kibana查看日誌159
6.4.5 Spring Boot直接輸出到
Logstash 162
6.4.6 ELK日誌收集優化方案及
建議163
6.5小結164
第7章Spring Boot的安全之旅165
7.1使用Shiro安全管理165
7.1.1什麼是Shiro 165
7.1.2使用Shiro做權限控制167
7.2使用Spring Security 177
7.2.1 Spring Security簡介177
7.2.2使用Spring Security做權限
控制178
7.3小結184
第8章Spring Boot的監控之旅185
8.1使用actuator監控185
8.1.1 actuator是什麼185
8.1.2如何使用actuator 185
8.1.3 actuator監控介紹186
8.1.4保護HTTP端點188
8.1.5健康信息190
8.1.6自定義應用程序信息192
8.1.7自定義管理端點路徑192
8.2使用Admin監控193
8.2.1什麼是Spring Boot Admin 193
8.2.2設置Spring Boot Admin
Server 193
8.2.3 Spring Cloud Eureka 194
8.2.4 Spring Boot Admin Client的
使用197
8.2.5安全驗證202
8.2. 6 JMX-bean管理203
8.2.7通知203
8.3 Prometheus Grafana監控207
8.3.1 Prometheus的安裝207
8.3.2 Grafana的安裝208
8.3.3 Spring Boot項目使用
Prometheus 208
8.3.4 Prometheus配置210
8.3.5啟動Grafana 211
8.4小結213
第9章Spring Boot的消息之旅214
9.1 RabbitMQ消息隊列214
9.1.1 RabbitMQ介紹214
9.1.2 RabbitMQ的幾種角色215
9.1.3 RabbitMQ的幾種模式216
9.1.4 Spring Boot使用RabbitMQ 218
9.2 Kafka消息隊列226
9.2.1 Kafka介紹226
9.2.2 Spring Boot使用Kafka 228
9.3 RocketMQ消息隊列230
9.3.1 RocketMQ介紹230
9.3.2 Spring Boot使用RocketMQ 231
9.4消息隊列對比236
9.5小結238
第10章Spring Boot的搜索之旅239
10.1使用Solr 239
10.1.1 Solr簡介239
10.1.2 Spring Boot使用Solr 240
10.2使用Elasticsearch 246
10.2.1 Elasticsearch簡介246
10.2.2 Spring Boot使用
Elasticsearch 246
10.2.3使用Elasticsearch Repository
進行操作247
10.2.4使用Elasticsearch Template
進行操作248
10.2.5非聚合查詢249
10.2.6聚合查詢251
10.2 .7複雜查詢練習252
10.3搜索引擎對比256
10.3.1技術背景256
10.3.2熱度比較258
10.3.3集群部署259
10.3.4數據格式259
10.3.5效率259
10.4小結259
第11章Spring Boot的小彩蛋260
11.1修改啟動Banner 260
11.1.1啟動Banner介紹260
11.1.2啟動Banner修改263
11.2使用LomBok讓編程更簡單264
11.2.1什麼是LomBok 264
11.2.2 IntelliJ IDEA安裝Lombok
插件264
11.2.3如何使用LomBok 265
11.3郵件發送266
11.3.1在Spring Boot中使用郵件
發送266
11.3.2基礎配置信息267
11.3.3文本郵件發送268
11.3.4網頁郵件發送269
11.3.5附件郵件發送270
11.3.6嵌入靜態資源郵件發送271
11.4三“器”的使用272
11.4.1過濾器272
11.4.2攔截器274
11.4.3監聽器275
11.4.4 Spring Boot引用三“器” 276
11.4.5測試277
11.5事務使用278
11.5.1事務介紹278
11.5.2在項目中使用事務279
11.5.3 Spring事務拓展介紹280
11.6統一處理異常282
11.6 .1異常介紹282
11.6.2 Java異常分類282
11.6.3 Spring Boot中統一處理
異常284
11.7使用AOP 284
11.7.1 AOP介紹285
11.7.2 Spring Boot使用AOP 285
11.8使用validator後台校驗288
11.9使用Swagger構建接口文檔291
11.9 .1什麼是Swagger 291
11.9.2 Swagger 2註解介紹291
11.9.3 Spring Boot使用Swagger 293
11.10使用ApiDoc構建接口文檔298
11.10.1如何使用ApiDoc接口
文檔298
11.10.2 ApiDoc常用註解298
11.10.3 Spring Boot使用ApiDoc 299
11.11小結302
第12章Spring Boot打包部署303
12.1使用IDE啟動303
12.1.1運行Spring Boot應用程序303
12.1.2 IntelliJ IDEA啟動多實例304
12.2使用Maven啟動305
12.3 JAR形式啟動305
12.3.1使用命令將Spring Boot應用
程序打成JAR 305
12.3.2 IntelliJ IDEA打JAR包306
12.4 War形式啟動307
12.4.1創建項目307
12.4.2打War包部署到Tomcat 308
12.5使用Docker構建Spring Boot
項目308
12.5.1 Docker簡介309
12.5.2安裝Docker 309
12.5.3 Dockerfile 309
12.5.4運行Docker鏡像310
12.6使用Jenkins自動化部署Spring
Boot應用311
12.6.1 Jenkins簡介311
12.6.2 Spring Boot應用使用
Jenkins 311
12.7小結317
第13章Spring Boot實戰之博客
系統318
13.1博客的製作思路318
13.1.1博客佈局介紹318
13.1.2博客功能介紹319
13.2博客模板製作320
13.3效果展示325
13.4依賴配置328
13.5配置文件329
13.6後台實體330
13.6.1文章表330
13.6.2標籤表332
13.6.3鏈接表333
13.6.4消息表333
13.6.5博客訪問記錄表334
13.6.6博客配置表335
13.7主功能336
13.7.1博客頁336
13.7.2搜索頁339
13.7.3文章詳情頁341
13.7.4聯繫頁343
13.8輔助功能344
13.8.1攔截器344
13.8.2定時器345
13.8.3初始化346
13.9小結347
第14章Spring Boot實戰之博客後台
系統350
14.1博客後台的製作思路350
14.1.1博客後台佈局介紹350
14.1.2博客功能介紹351
14.2博客後台模板製作352
14.3效果展示352
14.4依賴配置356
14.5配置文件358
14.6後台實體359
14.6.1用戶表359
14.6.2角色表360
14.7主功能361
14.7.1首頁362
14.7.2文章管理363
14.8輔助功能368
14.8.1攔截器368
14.8.2定時器369
14.8.3認證和授權370
14.8.4工具類373
14.8.5初始化方法373
14.9小結374
參考文獻375


作者介紹


楊洋,網名:大老楊,高級Java工程師,熱衷於各種主流技術,長期鑽研微服務,對Spring Boot和Spring Cloud有深入的研究,並且具備豐富的實戰經驗。目前在北京一家金融公司擔任技術負責人,負責公司主要產品的開發和維護,長期活躍於各大技術論壇、博客,分享新技術與開發經驗。




相關書籍

ASP.NET 入門經典 : 基於 Visual Studio 2015 (第9版)

作者 威廉·彭伯西 (William Penberthy)

2019-08-01

寫給大忙人的 Java SE 9 核心技術

作者 凱·霍斯特曼 (Cay S. Horstmann)

2019-08-01

Java 9編程參考官方大全(第10版)

作者 郝伯特·希爾德特 (Herbert Schildt)

2019-08-01