Spring Boot 3核心技術(shù)與最佳實踐
定 價:158 元
- 作者:周紅亮
- 出版時間:2023/4/1
- ISBN:9787121452901
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP312.8
- 頁碼:508
- 紙張:
- 版次:01
- 開本:16開
本書是一本針對Java開發(fā)人員的圖書,旨在幫助Java開發(fā)人員掌握Spring Boot的基本使用,以及深入了解Spring Boot的應(yīng)用及原理。本書內(nèi)容由淺入深、循序漸進(jìn),第1~5章介紹Spring Boot的基礎(chǔ)知識(基礎(chǔ)入門、配置管理、Starter、自動配置、啟動過程與擴(kuò)展應(yīng)用、日志管理),第6~9章介紹Spring Boot的綜合應(yīng)用(Web、數(shù)據(jù)訪問、計劃任務(wù)、緩存、消息隊列),第10~12章介紹Spring Boot應(yīng)用的附加能力(調(diào)試、單元測試、打包、部署、監(jiān)控、報警),全面覆蓋了Spring Boot的核心知識要點。本書涵蓋了筆者多年的研究和實踐經(jīng)驗,從中提煉出了核心知識要點,從Spring Boot的基本概念和基礎(chǔ)實踐入手,再通過大量的知識點分析及代碼實踐,詳細(xì)介紹如何利用Spring Boot簡化開發(fā)過程,提高開發(fā)效率。
周紅亮(英文名為John),具有多年編程開發(fā)和系統(tǒng)架構(gòu)經(jīng)驗,在大型互聯(lián)網(wǎng)公司擔(dān)任過Java高發(fā)開發(fā)工程師、開發(fā)主管、系統(tǒng)架構(gòu)師等職位。負(fù)責(zé)并參與過多個大型分布式系統(tǒng)的設(shè)計和研發(fā)、改造等,從中積累了大量的微服務(wù)系統(tǒng)架構(gòu)經(jīng)驗。同時也是微信公眾號“Java技術(shù)棧(ID:javastack)”的作者,筆名 為“棧長”,關(guān)注并分享最新的Java及IT行業(yè)技術(shù),在公眾號分享原創(chuàng)文章超過500篇,全網(wǎng)累積閱讀達(dá)數(shù)千萬,已幫助大量求職者進(jìn)入BAT等大廠工作。
第1章 Spring Boot基礎(chǔ)入門
1.1 Spring Boot概述
1.1.1 誕生背景
1.1.2 基本介紹
1.1.3 核心思想
1.1.4 基本特性
1.1.5 核心模塊
1.1.6 Spring Boot與Spring MVC、Spring之間的關(guān)系
1.2 Spring Boot安裝集成
1.2.1 版本周期
1.2.2 支持版本
1.2.3 環(huán)境要求
1.2.4 集成方式
1.3 快速開發(fā)一個Spring Boot接口
1.3.1 生成項目
1.3.2 導(dǎo)入依賴
1.3.3 編寫接口
1.3.4 啟動應(yīng)用
1.3.5 測試接口
1.4 快速使用Maven
1.4.1 基本介紹
1.4.2 使用方式
1.4.3 Gradle Wrapper
1.5 Spring Boot CLI
1.5.1 概述
1.5.2 安裝方式
1.5.3 命令行自動補(bǔ)全
1.5.4 快速開始
1.6 開啟Spring Boot之旅
第2章 Spring Boot配置管理
2.1 配置類
2.1.1 自定義配置類
2.1.2 導(dǎo)入配置
2.2 配置文件
2.2.1 application
2.2.2 bootstrap
2.2.3 配置文件類型
2.3 配置綁定
2.3.1 Spring中的配置綁定
2.3.2 參數(shù)綁定
2.3.3 構(gòu)造器綁定
2.3.4 Bean配置綁定
2.3.5 參數(shù)類掃描
2.3.6 配置驗證
2.4 外部化配置
2.4.1 配置源
2.4.2 配置優(yōu)先級
2.4.3 命令行參數(shù)
2.5 導(dǎo)入配置
2.6 隨機(jī)值配置
2.7 多文檔配置
2.7.1 配置格式
2.7.2 激活多文檔配置
2.8 Profile
2.8.1 默認(rèn)的Profile
2.8.2 激活Profile
2.8.3 切換Profile
2.8.4 Profile分組
2.8.5 指定Profile配置文件
2.8.6 使用限制
2.9 加載機(jī)制
2.10 配置加密
2.10.1 概述
2.10.2 使用配置中心(支持自動解密)
2.10.3 使用數(shù)據(jù)庫機(jī)制
2.10.4 使用自定義加/解密機(jī)制
2.10.5 Jasypt Spring Boot
2.11 配置遷移
2.11.1 遷移方案
2.11.2 實現(xiàn)原理
第3章 Spring Boot Starter與自動配置
3.1 概述
3.2 Starter的命名規(guī)范
3.3 Starter的分類
3.3.1 application starter
3.3.2 production starter
3.3.3 technical starter
3.4 自動配置
3.4.1 概述
3.4.2 命名規(guī)范
3.4.3 自動配置文件的加載原理
3.4.4 自動配置原理
3.4.5 自動配置報告
3.4.6 排除自動配置
3.4.7 替換自動配置
3.5 郵件Starter
3.5.1 概述
3.5.2 發(fā)郵件實踐
3.6 自定義Starter
3.6.1 創(chuàng)建Starter工程
3.6.2 創(chuàng)建自動配置類
3.6.3 注冊自動配置類(spring.factories)
3.6.4 使用Starter
3.6.5 注冊自動配置類(新規(guī)范)
第4章 Spring Boot啟動過程與擴(kuò)展應(yīng)用
4.1 啟動入口
4.1.1 應(yīng)用啟動類
4.1.2 應(yīng)用啟動方法
4.1.3 啟動引導(dǎo)類
4.2 關(guān)閉啟動日志
4.3 啟動失敗分析
4.3.1 失敗分析器
4.3.2 自定義失敗分析器
4.4 全局懶加載
4.5 啟動圖案
4.5.1 默認(rèn)圖案
4.5.2 輸出模式
4.5.3 圖案實現(xiàn)類
4.5.4 自定義圖案
4.6 啟動事件和監(jiān)聽器
4.6.1 啟動事件的順序
4.6.2 自定義事件監(jiān)聽器
4.7 啟動運行器
4.7.1 概述
4.7.2 使用方式
4.8 應(yīng)用啟動流程
4.8.1 實例化流程
4.8.2 啟動流程
第5章 Spring Boot日志管理
5.1 概述
5.2 日志格式
5.3 控制臺日志
5.4 日志文件
5.5 日志級別
5.6 日志分組
5.7 日志歸檔
5.8 日志配置文件
5.8.1 概述
5.8.2 日志配置模板
5.8.3 自定義日志配置文件
5.9 切換Log4j2日志框架
5.10 切換日志框架版本
5.11 輸出彩色日志
5.11.1 開啟彩色日志輸出
5.11.2 日志上色原理
5.11.3 自定義日志顏色
5.12 日志關(guān)閉鉤子
第6章 Spring Boot Web核心應(yīng)用
6.1 概述
6.2 嵌入式容器
6.2.1 概述
6.2.2 容器配置
6.2.3 切換容器
6.2.4 隨機(jī)空閑端口
6.2.5 SSL
6.2.6 持久化
6.2.7 優(yōu)雅關(guān)閉
6.3 自定義Web配置
6.4 注冊攔截器
6.5 注冊消息轉(zhuǎn)換器
6.6 注冊類型轉(zhuǎn)換器
6.7 注冊Servlet、Filter、Listener
6.7.1 Spring Boot的手動注冊
6.7.2 組件掃描注冊
6.7.3 動態(tài)注冊
6.8 靜態(tài)資源處理
6.9 模板引擎
6.10 異常處理
6.10.1 默認(rèn)的異常處理
6.10.2 自定義全局異常
6.10.3 自定義異常狀態(tài)碼頁面
6.11 參數(shù)校驗
6.11.1 概述
6.11.2 約束注解
6.11.3 參數(shù)校驗示例
6.12 國際化
6.12.1 概述
6.12.2 自動國際化
6.12.3 切換國際化
6.13 分布式會話
6.14 跨域
6.15 安全性
6.15.1 默認(rèn)的安全機(jī)制
6.15.2 自定義安全機(jī)制
6.16 REST服務(wù)調(diào)用
6.16.1 RestTemplate(Servlet)
6.16.2 WebClient(Reactive)
第7章 Spring Boot數(shù)據(jù)訪問
7.1 概述
7.2 嵌入式數(shù)據(jù)庫
7.3 數(shù)據(jù)源
7.3.1 概述
7.3.2 自定義數(shù)據(jù)源
7.4 連接池
7.4.1 概述
7.4.2 使用Druid連接池
7.5 數(shù)據(jù)庫初始化
7.6 事務(wù)管理
7.6.1 概述
7.6.2 事務(wù)失效的場景
7.7 JdbcTemplate
7.7.1 數(shù)據(jù)庫操作
7.7.2 自定義JdbcTemplate
7.8 Spring Data JPA
7.8.1 概述
7.8.2 數(shù)據(jù)庫操作
7.9 MyBatis
7.9.1 概述
7.9.2 數(shù)據(jù)庫操作
7.10 MyBatis-Plus
7.10.1 概述
7.10.2 通用數(shù)據(jù)庫操作
7.10.3 自定義數(shù)據(jù)庫操作
7.11 Redis
7.11.1 概述
7.11.2 Redis環(huán)境搭建
7.11.3 Spring Boot集成Redis
7.12 MongoDB
7.12.1 概述
7.12.2 MongoDB環(huán)境搭建
7.12.3 Spring Boot集成MongoDB
7.13 Elasticsearch
7.13.1 概述
7.13.2 Elasticsearch環(huán)境搭建
7.13.3 Spring Boot集成Elasticsearch
第8章 Spring Boot計劃任務(wù)
8.1 Spring計劃任務(wù)
8.1.1 概述
8.1.2 線程池工作流程
8.1.3 實現(xiàn)計劃任務(wù)
8.1.4 Cron表達(dá)式
8.1.5 自定義線程池
8.2 Quartz計劃任務(wù)
8.2.1 概述
8.2.2 實現(xiàn)計劃任務(wù)
8.2.3 自定義配置
8.2.4 持久化任務(wù)數(shù)據(jù)
8.2.5 動態(tài)維護(hù)任務(wù)
第9章 Spring Boot緩存與消息隊列
9.1 緩存
9.1.1 概述
9.1.2 開啟緩存
9.1.3 默認(rèn)簡單緩存
9.1.4 Redis緩存
9.2 消息系統(tǒng)
9.2.1 概述
9.2.2 ActiveMQ
9.2.3 RabbitMQ
9.2.4 Kafka
第10章 Spring Boot調(diào)試與單元測試
10.1 斷點調(diào)試
10.1.1 使用main方法啟動調(diào)試
10.1.2 使用Maven插件啟動調(diào)試
10.2 開發(fā)者工具
10.2.1 概述
10.2.2 默認(rèn)值
10.2.3 自動重啟
10.2.4 實時重載
10.2.5 全局配置
10.3 單元測試
10.3.1 概述
10.3.2 真實環(huán)境測試
10.3.3 Mock環(huán)境測試
10.3.4 Mock組件測試
10.3.5 技術(shù)框架測試
第11章 Spring Boot打包與部署
11.1 應(yīng)用打包(jar)
11.1.1 概述
11.1.2 快速打包
11.1.3 自定義打包
11.2 應(yīng)用打包(war)
11.2.1 概述
11.2.2 配置war包
11.2.3 開始打包
11.3 應(yīng)用運行(嵌入式容器)
11.3.1 使用java命令運行
11.3.2 直接運行
11.3.3 系統(tǒng)服務(wù)運行
11.3.4 拆包運行
11.4 部署Docker容器
11.4.1 概述
11.4.2 Docker環(huán)境搭建
11.4.3 基于Dockerfile構(gòu)建鏡像
11.4.4 基于Cloud Native Buildpacks構(gòu)建鏡像
11.5 GraalVM原生鏡像(Spring Boot 3.0+)
11.5.1 概述
11.5.2 GraalVM應(yīng)用與傳統(tǒng)應(yīng)用的區(qū)別
11.5.3 創(chuàng)建GraalVM原生鏡像的應(yīng)用
11.5.4 構(gòu)建基于GraalVM的原生鏡像應(yīng)用
第12章 Spring Boot監(jiān)控與報警
12.1 Spring Boot Actuator概述
12.2 Endpoints(端點)
12.2.1 概述
12.2.2 內(nèi)置端點
12.2.3 啟用端點
12.2.4 暴露端點
12.2.5 端點安全性
12.2.6 自定義端點映射
12.2.7 端點實現(xiàn)機(jī)制
12.2.8 自定義端點
12.3 loggers(日志端點)
12.4 Observability(可觀測性,Spring Boot 3.0+)
12.5 Metrics(指標(biāo))
12.5.1 內(nèi)置指標(biāo)
12.5.2 自定義指標(biāo)
12.6 Traces(鏈路跟蹤,Spring Boot 3.0+)
12.6.1 概述
12.6.2 鏈路跟蹤環(huán)境搭建
12.6.3 鏈路跟蹤/展示
12.7 Spring Boot Admin
12.7.1 概述
12.7.2 環(huán)境搭建
12.7.3 監(jiān)控頁面
12.7.4 監(jiān)控報警
12.8 Prometheus+Grafana
12.8.1 概述
12.8.2 Prometheus指標(biāo)暴露
12.8.3 Prometheus環(huán)境搭建
12.8.4 Grafana數(shù)據(jù)可視化
12.8.5 監(jiān)控報警