avaEE開發的顛覆者 Spring Boot實戰

avaEE開發的顛覆者 Spring Boot實戰

在當今Java EE 開發中,Spring 框架是當之無愧的王者。而Spring Boot 是Spring 主推的基於“習 慣優於配置”的原則,讓你能夠快速搭建套用的框架,從而使得Java EE 開發變得異常簡單。

內容簡介

在當今Java EE 開發中,Spring 框架是當之無愧的王者。而Spring Boot 是Spring 主推的基於“習 慣優於配置”的原則,讓你能夠快速搭建套用的框架,從而使得Java EE 開發變得異常簡單。

本書從Spring 基礎、Spring MVC 基礎講起,從而無難度地引入Spring Boot 的學習。涵蓋使用 Spring Boot 進行Java EE 開發的絕大數套用場景,包含:Web 開發、數據訪問、安全控制、批處理、 異步訊息、系統集成、開發與部署、套用監控、分散式系統開發等。 當你學完本書後,你將能使用Spring Boot 解決Java EE 開發中所遇到的絕大多數問題。

圖書目錄

目 錄

第一部分 點睛Spring 4 x 1

第1章 Spring 基礎 2

1.1 Spring 概述 2

1.1.1 Spring 的簡史 2

1.1.2 Spring 概述 3

1.2 Spring 項目快速搭建 . 5

1.2.1 Maven 簡介 6

1.2.2 Maven 安裝 6

1.2.3 Maven 的pom.xml . 7

1.2.4 Spring 項目的搭建 9

1.3 Spring 基礎配置 . 17

1.3.1 依賴注入 18

1.3.2 Java 配置 21

1.3.3 AOP . 24

第2章 Spring 常用配置 30

2.1 Bean 的Scope . 30

2.1.1 點睛 . 30

2.1.2 示例 . 31

2.2 Spring EL 和資源調用 33

目 錄 ∣ VII

2.2.1 點睛 . 33

2.2.2 示例 . 33

2.3 Bean 的初始化和銷毀 37

2.3.1 點睛 . 37

2.3.2 演示 . 38

2.4 Profile . 40

2.4.1 點睛 . 40

2.4.2 演示 . 41

2.5 事件(Application Event) 44

2.5.1 點睛 . 44

2.5.2 示例 . 44

第3章 Spring 高級話題 48

3.1 Spring Aware 48

3.1.1 點睛 . 48

3.1.2 示例 . 49

3.2 多執行緒 51

3.2.1 點睛 . 51

3.2.2 示例 . 51

3.3 計畫任務 54

3.3.1 點睛 . 54

3.3.2 示例 . 54

3.4 條件註解@Conditional 56

3.4.1 點睛 . 56

3.4.2 示例 . 57

3.5 組合註解與元註解 . 60

3.5.1 點睛 . 60

3.5.2 示例 . 60

3.6 @Enable*註解的工作原理 63

3.6.1 第一類:直接導入配置類 63

3.6.2 第二類:依據條件選擇配置類 64

3.6.3 第三類:動態註冊Bean . 65

VIII ∣ Java EE 開發的顛覆者:Spring Boot 實戰

3.7 測試 66

3.7.1 點睛 . 66

3.7.2 示例 . 67

第二部分 點睛Spring MVC 4 x

第4章 Spring MVC 基礎 72

4.1 Spring MVC 概述 . 73

4.2 Spring MVC 項目快速搭建 . 74

4.2.1 點睛 . 74

4.2.2 示例 . 74

4.3 Spring MVC 的常用註解 . 82

4.3.1 點睛 . 82

4.3.2 示例 . 83

4.4 Spring MVC 基本配置 . 87

4.4.1 靜態資源映射 88

4.4.2 攔截器配置 89

4.4.3 @ControllerAdvice 91

4.4.4 其他配置 94

4.5 Spring MVC 的高級配置 . 98

4.5.1 檔案上傳配置 98

4.5.2 自定義HttpMessageConverter 101

4.5.3 伺服器端推送技術 106

4.6 Spring MVC 的測試 . 113

4.6.1 點睛 . 113

4.6.2 示例 . 114

第三部分 實戰Spring Boot

第5章 Spring Boot 基礎 . 122

5.1 Spring Boot 概述 . 122

5.1.1 什麼是Spring Boot 122

目 錄 ∣ IX

5.1.2 Spring Boot 核心功能 122

5.1.3 Spring Boot 的優缺點 124

5.1.4 關於本書的Spring Boot 版本 . 124

5.2 Spring Boot 快速搭建 . 124

5.2.1 http://start.spring.io . 124

5.2.2 Spring Tool Suite 127

5.2.3 IntelliJ IDEA 129

5.2.4 Spring Boot CLI . 132

5.2.5 Maven 手工構建 134

5.2.6 簡單演示 136

第6章 Spring Boot 核心 . 138

6.1 基本配置 138

6.1.1 入口類和@SpringBootApplication . 138

6.1.2 關閉特定的自動配置 139

6.1.3 定製Banner . 139

6.1.4 Spring Boot 的配置檔案 140

6.1.5 starter pom 141

6.1.6 使用xml 配置 143

6.2 外部配置 143

6.2.1 命令行參數配置 143

6.2.2 常規屬性配置 144

6.2.3 類型安全的配置(基於properties) . 145

6.3 日誌配置 148

6.4 Profile 配置 148

實戰 . 148

6.5 Spring Boot 運行原理 . 150

6.5.1 運作原理 153

6.5.2 核心註解 154

6.5.3 實例分析 157

6.5.4 實戰 . 160

X ∣ Java EE 開發的顛覆者:Spring Boot 實戰

第7章 Spring Boot 的Web 開發 170

7.1 Spring Boot 的Web 開發支持 . 170

7.2 Thymeleaf 模板引擎 . 171

7.2.1 Thymeleaf 基礎知識 171

7.2.2 與Spring MVC 集成 . 174

7.2.3 Spring Boot 的Thymeleaf 支持 . 175

7.2.4 實戰 . 177

7.3 Web 相關配置 . 182

7.3.1 Spring Boot 提供的自動配置 182

7.3.2 接管Spring Boot 的Web 配置 185

7.3.3 註冊Servlet、Filter、Listener 186

7.4 Tomcat 配置 187

7.4.1 配置Tomcat . 187

7.4.2 代碼配置Tomcat . 188

7.4.3 替換Tomcat . 190

7.4.4 SSL 配置 191

7.5 Favicon 配置 . 196

7.5.1 默認的Favicon 196

7.5.2 關閉Favicon 196

7.5.3 設定自己的Favicon 197

7.6 WebSocket 197

7.6.1 什麼是WebSocket . 197

7.6.2 Spring Boot 提供的自動配置 197

7.6.3 實戰 . 198

7.7 基於Bootstrap 和AngularJS 的現代Web 套用 212

7.7.1 Bootstrap 213

7.7.2 AngularJS . 216

7.7.3 實戰 . 222

第8章 Spring Boot 的數據訪問 233

8.1 引入Docker 237

8.1.1 Docker 的安裝 . 238

目 錄 ∣ XI

8.1.2 Docker 常用命令及參數 . 242

8.1.3 下載本書所需的Docker 鏡像 247

8.1.4 異常處理 247

8.2 Spring Data JPA 248

8.2.1 點睛Spring Data JPA . 248

8.2.2 Spring Boot 的支持 258

8.2.3 實戰 . 260

8.3 Spring Data REST . 284

8.3.1 點睛Spring Data REST . 284

8.3.2 Spring Boot 的支持 285

8.3.3 實戰 . 286

8.4 聲名式事務 297

8.4.1 Spring 的事務機制 297

8.4.2 聲名式事務 298

8.4.3 註解事務行為 299

8.4.4 類級別使用@Transactional . 300

8.4.5 Spring Data JPA 的事務支持 . 300

8.4.6 Spring Boot 的事務支持 302

8.4.7 實戰 . 303

8.5 數據快取Cache 309

8.5.1 Spring 快取支持 309

8.5.2 Spring Boot 的支持 310

8.5.3 實戰 . 312

8.5.4 切換快取技術 319

8.6 非關係型資料庫NoSQL 320

8.6.1 MongoDB . 320

8.6.2 Redis 329

第9章 Spring Boot 企業級開發 340

9.1 安全控制Spring Security . 340

9.1.1 Spring Security 快速入門 340

9.1.2 Spring Boot 的支持 347

XII ∣ Java EE 開發的顛覆者:Spring Boot 實戰

9.1.3 實戰 . 348

9.2 批處理Spring Batch . 362

9.2.1 Spring Batch 快速入門 362

9.2.2 Spring Boot 的支持 370

9.2.3 實戰 . 371

9.3 異步訊息 385

9.3.1 企業級訊息代理 386

9.3.2 Spring 的支持 386

9.3.3 Spring Boot 的支持 386

9.3.4 JMS 實戰 387

9.3.5 AMQP 實戰 . 391

9.4 系統集成Spring Integration . 395

9.4.1 Spring Integration 快速入門 395

9.4.2 Message 395

9.4.3 Channel . 395

9.4.4 Message EndPoint 398

9.4.5 Spring Integration Java DSL 400

9.4.6 實戰 . 400

第10章 Spring Boot 開發部署與測試 . 407

10.1 開發的熱部署 . 407

10.1.1 模板熱部署 407

10.1.2 Spring Loaded 407

10.1.3 JRebel . 409

10.1.4 spring-boot-devtools . 413

10.2 常規部署 413

10.2.1 jar 形式 . 413

10.2.2 war 形式 . 417

10.3 雲部署——基於Docker 的部署 . 419

10.3.1 Dockerfile . 419

10.3.2 安裝Docker . 421

10.3.3 項目目錄及檔案 421

目 錄 ∣ XIII

10.3.4 編譯鏡像 423

10.3.5 運行 424

10.4 Spring Boot 的測試 . 424

10.4.1 新建Spring Boot 項目 . 425

10.4.2 業務代碼 425

10.4.3 測試用例 427

10.4.4 執行測試 429

第11章 套用監控 . 431

11.1 http 431

11.1.1 新建Spring Boot 項目 . 432

11.1.2 測試端點 432

11.1.3 定製端點 439

11.1.4 自定義端點 440

11.1.5 自定義HealthIndicator 444

11.2 JMX 447

11.3 SSH . 449

11.3.1 新建Spring Boot 項目 . 449

11.3.2 運行 449

11.3.3 常用命令 451

11.3.4 定製登錄用戶 452

11.3.5 擴展命令 452

第12章 分散式系統開發 456

12.1 微服務、原生雲套用 . 456

12.2 Spring Cloud 快速入門 . 457

12.2.1 配置服務 457

12.2.2 服務發現 457

12.2.3 路由網關 457

12.2.4 負載均衡 457

12.2.5 斷路器 458

XIV ∣ Java EE 開發的顛覆者:Spring Boot 實戰

12.3 實戰 458

12.3.1 項目構建 458

12.3.2 服務發現——Discovery(Eureka Server) . 459

12.3.3 配置——Config(Config Server) . 461

12.3.4 服務模組——Person 服務 463

12.3.5 服務模組——Some 服務 466

12.3.6 界面模組——UI(Ribbon,Feign) 468

12.3.7 斷路器監控——Monitor(DashBoard) . 473

12.3.8 運行 474

12.4 基於Docker部署 . 478

12.4.1 Dockerfile 編寫 478

12.4.2 Docker Compose 480

12.4.3 Docker-compose.yml 編寫 . 481

12.4.4 運行 483

附錄A 485

A.1 基於JHipster 的代碼生成 . 485

A.2 常用套用屬性配置列表 488

相關詞條

熱門詞條

聯絡我們