新書上架:《Spring Boot 開發實戰》
— 基于 Kotlin + Gradle + Spring Boot 2.0 的企業級服務端開發實戰
京東下單鏈接
https://item.jd.com/31178320122.html
天貓下單鏈接
https://detail.tmall.com/item.htm?id=574928877711
基本信息
作者: 陳光劍
叢書名: 華章程序員書庫
出版社:機械工業出版社
ISBN:9787111603337
上架時間:2018-8-4
出版日期:2018 年8月
開本:16開
頁碼:375
版次:1-1
-
所屬分類:
編輯推薦
以案例方式,詳細介紹如何使用 Spring Boot 2.0 框架快速開發企業級應用,包含詳細步驟、示例代碼,所有代碼都可以下載并應用,源代碼地址為https://github.com/EasySpringBoot。
想要在數秒內創建一個企業級Web應用嗎?
想要摒棄繁雜凌亂的XML,實現“零XML配置”的Spring 應用開發嗎?
想要幾行配置就完成MyBatis、JPA、Redis等第三方框架的集成嗎?
想要一鍵啟動Web應用(再也不用費事去安裝配置Tomcat)嗎?
想要從讓你痛不欲生的jar包沖突中解脫嗎?
想要清晰地、可視化地、數據化地度量應用程序的運行狀態和性能指標嗎?
內容簡介
本書從Spring Boot基礎知識講起,快速進入應用部署與運維,然后通過實例講解Spring Boot的應用方法與開發技巧。本書分為三大部分,共16章。第一部分"Spring Boot 框架基礎"包括第1-4章,第1章對Spring Boot進行簡單介紹,第2章通過Hello World介紹Spring Boot的基本知識,第3章介紹Spring Boot啟動器,第4章介紹Spring Boot自動配置原理。第二部分“Spring Boot應用的測試與運維”包括第5-6章,第5章介紹Spring Boot 應用的自動化測試,第6章介紹Spring Boot應用的部署運維。第三部分“Spring Boot項目綜合實戰”包括第7-16章,第7章介紹Spring Boot 集成 MVC 開發Web 應用,第8章介紹Spring Boot 集成 MyBatis 開發數據庫 ORM 層,第9章介紹Spring Boot 集成 JPA 開發數據庫 ORM 層,第10章介紹Spring Boot 集成 Thymeleaf 開發 Web 視圖層,第11章介紹Spring Boot 集成 Freemarker 開發 Web 視圖層,第12章介紹Spring Boot 集成日志 Logging 系統 sl4j,第13章介紹Spring Boot 集成 Security 開發系統的權限與安全功能,第14章介紹Spring Boot 集成 Shiro 開發系統的權限與安全功能,第15章介紹Spring Boot 集成 Swagger2 實現自動化 API 管理,第16章介紹Spring Boot + Kotlin: 下一代 Java 服務端開發。
目錄
前 言
第Ⅰ部分 Spring Boot框架基礎
第1章 Spring Boot簡介 2
1.1 從Spring到Spring Boot 2
1.1.1 從EJB到Spring 3
1.1.2 Spring框架發展簡史 4
1.1.3 Spring框架的核心模塊 5
1.2 Spring Boot簡介 7
1.2.1 Spring Boot是什么 7
1.2.2 Spring Boot核心模塊 10
1.3 約定優于配置極簡化理念 11
1.4 本章小結 12
第2章 快速開始HelloWorld 13
2.1 創建Spring Boot項目 13
2.2 Spring Boot項目的入口類 16
2.3 添加HelloWorldController 18
2.4 Spring Boot應用注解@Spring BootApplication 19
2.4.1 Spring Boot配置類注解 20
2.4.2 啟用自動配置注解 21
2.4.3 組件掃描注解 21
2.5 XML配置與注解配置 22
2.6 本章小結 22
第3章 深入理解Spring Boot自動配置 23
3.1 傳統的SSM開發過程 23
3.2 Spring Boot自動配置原理 26
3.2.1 Java配置 26
3.2.2 條件化Bean 27
3.2.3 組合注解 32
3.3 Spring Boot自動配置過程 33
3.3.1 @EnableAutoConfiguration注解 33
3.3.2 spring.factories文件 34
3.3.3 獲取候選配置類 35
3.4 FreeMarkerAutoConfiguration實例分析 35
3.4.1 spring-boot-starter-freemarker工程 35
3.4.2 spring-boot-autoconfigure工程 37
3.5 本章小結 39
第Ⅱ部分 Spring Boot項目綜合實戰
第4章 Spring Boot集成MyBatis數據庫層開發 42
4.1 Java EE分層架構 42
4.2 MyBatis簡介 43
4.2.1 概述 43
4.2.2 MyBatis框架組成 44
4.2.3 MyBatis基礎設施 46
4.3 項目實戰 54
4.3.1 使用Spring Boot CLI創建工程 54
4.3.2 Spring Boot命令行CLI簡介 54
4.3.3 配置application.properties 58
4.3.4 使用IDEA中自帶的連接數據庫客戶端 59
4.3.5 使用MyBatis Generator生成dao層代碼 60
4.3.6 設置MyBatis同時使用Mapper.xml和注解 62
4.3.7 使用@Select注解 62
4.3.8 使用MyBatis分頁插件pagehelper 63
4.3.9 MyBatis插件機制 64
4.3.10 實現分頁接口 64
4.3.11 PageHelper工作原理 67
4.3.12 多表關聯查詢級聯 74
4.4 本章小結 78
第5章 Spring Boot集成JPA數據庫層開發 79
5.1 JPA簡介 79
5.1.1 JPA生態 81
5.1.2 JPA技術棧 82
5.2 ORM框架概述 83
5.3 Hibernate簡介 83
5.4 Spring Data JPA簡介 88
5.5 項目實戰 90
5.5.1 Spring Data JPA提供的接口 90
5.5.2 創建項目 91
5.5.3 配置數據庫連接 91
5.5.4 自動生成Entity實體類代碼 91
5.5.5 配置項目數據源信息 95
5.5.6 實現查詢接口 96
5.5.7 分頁查詢 97
5.5.8 多表級聯查詢 99
5.5.9 級聯類型 101
5.5.10 模糊搜索接口 102
5.5.11 JPQL語法基礎 103
5.5.12 JPA常用注解 108
5.6 本章小結 109
第6章 Spring Boot Gradle插件應用開發 110
6.1 Gradle簡介 110
6.2 用Gradle構建生命周期 112
6.3 Gradle 插件 114
6.4 項目實戰 118
6.4.1 創建項目 118
6.4.2 添加依賴 121
6.4.3 配置上傳本地Maven倉庫 121
6.4.4 實現插件 122
6.4.5 添加插件屬性配置 124
6.4.6 運行測試 124
6.4.7 在項目中使用kor插件 126
6.5 本章小結 128
第7章 使用Spring MVC開發Web應用 129
7.1 Spring MVC簡介 129
7.1.1 Servlet概述 129
7.1.2 MVC簡介 131
7.1.3 Spring、Spring MVC與Spring Boot 2.0 132
7.1.4 Spring MVC框架 133
7.2 Spring MVC常用注解 136
7.3 項目實戰:使用FreeMarker模板引擎 137
7.3.1 FreeMarker簡介 137
7.3.2 實現一個分頁查詢頁面 138
7.4 實現文件下載 144
7.5 本章小結 145
第8章 Spring Boot自定義Web MVC配置 146
8.1 Web MVC配置簡介 146
8.1.1 靜態資源配置 147
8.1.2 攔截器配置 148
8.1.3 跨域配置 148
8.1.4 視圖控制器配置 149
8.1.5 消息轉換器配置 150
8.1.6 數據格式化器配置 150
8.1.7 視圖解析器配置 151
8.2 全局異常處理 152
8.2.1 使用@ControllerAdvice和@ExceptionHandler注解 152
8.2.2 實現HandlerExceptionResolver接口 154
8.3 定制Web容器 157
8.4 定制Spring Boot應用程序啟動Banner 158
8.5 自定義注冊Servlet、Filter和Listener 161
8.5.1 注冊Servlet 161
8.5.2 注冊Filter 163
8.5.3 注冊Listener 168
8.6 本章小結 169
第9章 Spring Boot中的AOP編程 170
9.1 Spring Boot與AOP 170
9.1.1 AOP簡介 170
9.1.2 Spring AOP介紹 172
9.1.3 實現一個簡單的日志切面 172
9.2 項目實戰:使用AOP + Filter實現登錄鑒權與權限控制 175
9.2.1 系統整體架構 175
9.2.2 創建工程 176
9.2.3 數據庫表結構設計 177
9.2.4 用戶登錄邏輯 179
9.2.5 登錄態鑒權過濾器 181
9.2.6 AOP實現用戶權限管理 185
9.2.7 用戶注冊 187
9.2.8 數據后端校驗 188
9.3 本章小結 192
第10章 Spring Boot集成Spring Security安全開發 193
10.1 Spring Security簡介 193
10.2 Spring Security核心組件 194
10.3 項目實戰 201
10.3.1 初階Security:默認認證用戶名密碼 201
10.3.2 中階Security:內存用戶名密碼認證 204
10.3.3 角色權限控制 206
10.3.4 進階Security:基于數據庫的用戶和角色權限 211
10.4 本章小結 225
第11章 Spring Boot集成React.js開發前后端分離項目 226
11.1 Web前端技術簡史 226
11.2 前后端分離架構 228
11.3 項目實戰 229
11.3.1 系統功能介紹 229
11.3.2 實現登錄后端接口 230
11.3.3 實現登錄前端頁面 231
11.3.4 實現列表展示后端接口 232
11.3.5 前后端聯調測試 233
11.4 本章小結 235
第12章 任務調度與郵件服務開發 236
12.1 定時任務 236
12.1.1 通用實現方法 236
12.1.2 靜態定時任務 237
12.1.3 Cron簡介 238
12.1.4 動態定時任務 240
12.1.5 多線程執行任務 243
12.2 開發任務調度服務 245
12.2.1 同步與異步 245
12.2.2 同步任務執行 245
12.2.3 異步任務執行 247
12.3 開發郵件服務 250
12.3.1 發送富文本郵件 252
12.3.2 發送帶附件的富文本郵件 253
12.4 本章小結 254
第13章 Spring Boot集成WebFlux開發響應式Web應用 255
13.1 響應式宣言及架構 255
13.2 項目實戰 256
13.2.1 創建項目 256
13.2.2 代碼分析 258
13.3 本章小結 262
第14章 Spring Boot緩存 263
14.1 Spring Cache簡介 263
14.2 Cache注解 264
14.3 項目實戰 266
14.4 本章小結 272
第15章 使用Spring Session集成Redis實現Session共享 273
15.1 Spring Session簡介 273
15.2 Redis簡介 275
15.2.1 Redis是什么 275
15.2.2 安裝Redis 275
15.2.3 設置Redis密碼 276
15.2.4 Redis數據類型 277
15.2.5 Spring Boot集成Redis 279
15.3 項目實戰 281
15.4 本章小結 285
第16章 使用Zuul開發API Gateway 286
16.1 API Gateway簡介 286
16.2 Zuul簡介 287
16.3 項目實戰 290
16.4 本章小結 294
第17章 Spring Boot日志 295
17.1 Logback簡介 295
17.2 配置logback日志 296
17.3 logback.groovy配置文件 298
17.3.1 顯示系統Log級別 298
17.3.2 使用logback.groovy配置 299
17.3.3 配置文件說明 301
17.4 本章小結 306
第Ⅲ部分 Spring Boot系統監控、測試與運維
第18章 Spring Boot應用的監控:Actuator與Admin 308
18.1 Actuator簡介 308
18.2 啟用Actuator 309
18.3 揭秘端點 311
18.3.1 常用的Actuator端點 311
18.3.2 啟用和禁用端點 317
18.4 自定義Actuator端點 318
18.4.1 Endpoint接口 319
18.4.2 實現Endpoint接口 320
18.4.3 繼承AbstractEndpoint抽象類 321
18.4.4 實現健康指標接口HealthIndicator 323
18.4.5 實現度量指標接口PublicMetrics 324
18.4.6 統計方法執行數據 328
18.5 使用Admin 331
18.5.1 Admin簡介 331
18.5.2 創建Admin Server項目 334
18.5.3 在客戶端使用Admin Server 335
18.6 本章小結 339
第19章 Spring Boot應用的測試 340
19.1 準備工作 340
19.2 分層測試 340
19.2.1 dao層測試 341
19.2.2 service層測試 342
19.2.3 使用Mockito測試service層代碼 342
19.2.4 controller層測試 344
19.2.5 JSON接口測試 346
19.3 本章小結 347
第20章 Spring Boot應用Docker化 348
20.1 Spring Boot應用打包 348
20.2 Spring Boot應用運維 352
20.2.1 查看JVM參數的值 352
20.2.2 應用重啟 353
20.3 使用Docker構建部署運行Spring Boot應用 353
20.3.1 Docker簡介 354
20.3.2 環境搭建 355
20.4 項目實戰 356
20.4.1 添加Docker構建插件 356
20.4.2 配置Dockerfile文件創建自定義的鏡像 357
20.4.3 Dockerfile配置說明 358
20.4.4 構建鏡像 362
20.4.5 運行測試 363
20.5 本章小結 364 |
本書以實戰案例的方式,詳細介紹如何使用 Spring Boot 2.0 框架快速開發企業級應用,包含詳細步驟、示例代碼,所有代碼都可以下載并應用,源代碼地址為https://github.com/EasySpringBoot。
想要在數秒內創建一個企業級Web應用嗎?
想要摒棄繁雜凌亂的XML,實現“零XML配置”的Spring 應用開發嗎?
想要幾行配置就完成MyBatis、JPA、Redis等第三方框架的集成嗎?
想要一鍵啟動Web應用(再也不用費事去安裝配置Tomcat)嗎?
想要從讓你痛不欲生的jar包沖突中解脫嗎?
想要清晰地、可視化地、數據化地度量應用程序的運行狀態和性能指標嗎? |
Spring Boot 是由 Pivotal 團隊提供的全新框架,其設計目的是簡化新 Spring 應用的初始搭建以及開發過程。在 Java 開發領域中,有很多著名框架都是 Pivotal 團隊的產品,如:Spring 框架及其衍生框架、緩存Redis、消息隊列框架RabbitMQ、Greenplum數據庫等。還有Tomcat、Apache Http Server、Groovy里的一些頂級開發者、DevOps理論的提出者都屬于Pivotal團隊。Spring 團隊在現有 Spring 框架的基礎上,開發了一個新框架:Spring Boot,用來簡化配置和部署 Spring 應用程序的過程,去除了那些煩瑣的開發步驟和樣板代碼及其配置,使得基于 Spring 框架的 Java 企業級應用開發“極簡化”。相比于傳統的 Spring/Spring MVC 框架的企業級應用開發(Spring 的各種配置太復雜了,我們之前是用“生命”在搞這些配置), Spring Boot 用簡單的注解和 application.properties 配置文件,避免了煩瑣而且容易出錯的XML配置文件,極大地簡化了基于 Spring 框架的企業級應用開發的配置。
Kotlin 是由 JetBrains 團隊開發的多平臺、靜態類型、強工程實用性的編程語言,Kotlin 100% 兼容Java,比Java更強大、更安全、更簡潔、更優雅。Kotlin 是 Google 公司的 Android 官方支持的開發語言。Spring 官方也正式支持Kotlin語言,Spring Boot 2.0 版本中為 Kotlin 提供了一流的支持。其實,在 Spring Boot 2.0 和 Spring 5.0 框架源代碼中,已經可以看到 Kotlin 代碼。 本書可以說是我對使用 Spring Boot + Kotlin 進行服務端開發的實戰和思考過程的粗淺總結。通過本書的寫作,加深了我對 Spring Boot框架和 Kotlin 編程語言的理解,我深刻體會到了學無止境的含義。寫書的過程也是我系統學習與思考的過程,如果本書能夠對你有所幫助,將不勝欣慰。
如何閱讀本書
本書系統介紹了使用 Spring Boot 2.0 框架,并基于 Gradle + Kotlin 來開發企業級應用。希望通過簡練的表述,系統全面地介紹如何使用 Spring Boot 2.0 框架開發項目,每章的關聯度不大,讀者可根據自己的需求閱讀本書。
全書共分三大部分:
第Ⅰ部分 Spring Boot 框架基礎(第1~3章)
第Ⅱ部分 Spring Boot 項目綜合實戰(第4~17章)
第Ⅲ部分 Spring Boot 系統監控、測試與運維(第18~20章)
建議初學者最好按照章節順序來閱讀本書。如果想直接使用 Spring Boot 框架進行項目的實戰,可以直接進入第Ⅱ部分,如果對 Spring Boot 應用的監控、測試與運維感興趣,那么可以從第Ⅲ部分直接開始閱讀。
本書共20章,各個章節內容簡介如下。
第1章:簡單介紹了Spring Boot 框架的歷史、組成、特性等。
第2章:使用 Spring Boot 2.0 快速實現一個基于Kotlin和 Gradle 的 HelloWorld應用。
第3章:介紹Spring Boot 是怎樣通過自動配置實現“極簡化配置”的應用開發。
第4章:介紹如何使用 Spring Boot 集成 MyBatis來進行數據庫層開發。
第5章:介紹如何使用 Spring Boot 集成Spring Data JPA來進行數據庫層開發。
第6章:介紹如何開發一個Gradle 插件,以及如何簡化 開發過程中樣板代碼的編寫。
第7章: 介紹Kotlin編程語言,以及如何集成 Spring Boot 和 Spring MVC 進行服務端開發。
第8章:介紹在 Spring Boot 項目中怎樣自定義 Web MVC 配置。
第9章:介紹基于 Spring Boot + Spring MVC, 使用AOP + Filter如何實現一個簡單的用戶登錄鑒權與權限控制系統。
第10章:介紹如何使用Spring Boot集成Spring Security開發一個自動化測試平臺。
第11章:介紹Spring Boot 集成React.js開發前后端分離項目的實戰案例。
第12章:介紹如何開發任務調度、郵件服務等系統功能。
第13章:介紹如何用Spring Boot 集成 WebFlux 開發響應式Web 應用。
第14章:介紹在 Spring Boot 項目開發中怎樣使用Spring Cache 實現數據的緩存。
第15章:介紹如何使用Spring Session 集成Redis實現Session共享,從而實現水平擴展。
第16章:介紹如何使用 Netflix Zuul 實現一個微服務API Gateway 來完成簡單代理轉發和過濾器功能。
第17章:詳細介紹 Spring Boot 應用的日志配置與使用,主要介紹 Logback 日志框架。
第18章:介紹如何使用 Spring Boot Actuator 和Spring Boot Admin實現監控與管理。
第19章:介紹 Spring Boot 應用的測試,以及如何在實際項目中進行分層測試。
第20章:介紹如何使用 Docker 來構建部署運行 Spring Boot 應用。
誰適合閱讀本書
本書適合于所有 Java、Kotlin 程序員,以及任何對編程感興趣的朋友。如果你目前還不是程序員,但想進入企業級應用開發的編程世界,那么你也可以嘗試從本書開始學習。
雖然書中的部分內容需要一定的Java和Kotlin編程基礎,還需要了解Spring框架,但是如果你想快速開始企業級應用開發,不妨從這里開始——Spring Boot 2.0 + Kotlin ,這種方式的極簡特性定能激發你對編程的興趣。
代碼下載
每章末尾基本上都附了該章示例工程源代碼地址。