讓開發大型專案像堆疊積木一樣簡單
第1 章:除說明Sping、Spring Boot 和Spring Cloud 之間的關係,還告訴我們在開發過程中如何學習、發現和解決問題,這在很多書中不曾有過。
第2、3 章:說明Java 環境的架設,以及開發工具的使用。對初學者來說,第3 章值得細心體會,可以作為入門開發工具的教學來研讀,讀者可以按照書中所示範的步驟進行實際操作。
第4 ∼ 6 章:這3 章為本書的基礎篇,對入門讀者特別適用。第4 章說明Spring Boot 的專案架設,如何使用Spring Boot 註釋進行開發,讀者可以跟著實例進行實際操作,體會註釋式程式設計與設定檔的結合使用。第5 章詳細說明Spring Boot 的MVC 模式以及原理,同時透過實例說明Thymeleaf 範本引擎,讀者可輕鬆上手。第6 章讓讀者深入地了解響應式程式設計WebFlux的開發過程,以及如何連接操作MongoDB 資料庫。
第7 ∼ 13 章:在理論說明部分讓讀者明白工作中需要的技術重點,再以實例讓深入學習,真真切切地將基礎知識和實操技能應用到工作中。第7 章剖析Spring 的兩個重要特性:AOP和IoC;第8 章說明如何使用ORM,以及其原理;第9 章說明介面的請求方法,以及介面的定義標準風格;第10 章說明Spring Security;第11 章說明Redis 以及其工作原理和使用;第12 章說明近年來使用非常廣泛的訊息中介軟體RabbitMQ;第13 章說明如何透過NoSQL 資料庫去實現Elasticsearch 和Solr 兩大搜尋架構效果,同時對搜尋引擎做詳細的說明,並透過實例實現資料的增加、刪除、修改、查詢操作。作者把他多年的工作經驗和工作中必須掌握的知識透過理論與實作相結合的方式,讓讀者可以在短時間內從一個技術「菜鳥」成長為技術「達人」。
第14、15 章:作者精心準備兩個專案實例。這兩章的知識也是在找工作時面試官常會問的問題。例如,做過幾個專案?都會什麼技術?讀者可以透過這兩章了解實際的專案並將前面的內容融會貫通。
本書特色
Java煩 ! Spring更煩 !!
當所有Java工程師看到Python、PHP、Ruby這種輕量化語言佈建的高效快速時,深怕自己選擇了程式語言。但Spring Boot的出現,讓Java工程師重拾信心,數分鐘即建好框架,直接讀取SQL、NoSQL,充分利用ORM的特性,讓Java換上輕盈的腳步,讓你自由自在用Spring Boot完成各種大型專案。
本書最大的重點就是實戰。
透過「58 個以知識為基礎的實例 + 2 個綜合性的專案」,全面深入地說明Spring Boot 的主要技術原理和應用。
從最基本的Spring Boot安裝設定架設開始,進而搭配網頁後端開發最強大的MVC架構,使用標準的ORM說明清楚。加上實作了著名的SQL、NoSQL的大型資料庫系統,讓讀者直接忘記Java的龐大擁腫身驅,更可直接一路延伸到Spring Cloud。
這種快速強大的開發體驗,讓讀者不只學會了工具,也可立即開發商品,成為理論及實戰都熟練的高手。
作者
龍中華
著名互聯網公司資深系統分析師。目前帶領3個研發團隊,負責系統的分析、設計、執行、演進以及技術團隊管理和培訓,有獨到的團隊建置和管理經驗。
對互聯網多種技術特點和發展趨勢鑽研極深,對Spring Boot、Spring Cloud和Service Mesh有深入的研究和豐富實戰經驗。
目錄
推薦序
前言
[ 第一篇 ] 入門篇
01 進入Spring Boot 世界
1.1 認識Spring Boot
1.2 學習Spring Boot 的建議
02 準備開發環境
2.1 架設環境
2.2 熟悉Maven
03 使用開發工具
3.1 安裝開發工具IDEA 及外掛程式
3.2 實例1:用Spring Boot 輸出"HelloWorld"
3.3 在Eclipse 中開發Spring Boot應用程式
3.4 了解Spring 官方開發工具STS
3.5 必會的IDEA 實用技能
3.6 比較IDEA 與Eclipse
3.7 如何使用本書原始程式碼
[ 第二篇 ] 基礎篇
04 Spring Boot 基礎
4.1 了解Spring Boot
4.2 Spring Boot 的常用註釋
4.3 使用設定檔
4.4 Spring Boot 的Starter
05 分層開發Web 應用程式
5.1 應用程式分層開發模式—MVC
5.2 使用視圖技術Thymeleaf
5.3 使用控制器
5.4 了解模型
5.5 實例7:實現MVC 模式的Web應用程式
5.6 驗證資料
06 響應式程式設計
6.1 認識響應式程式設計
6.2 實例9:用註釋式開發實現Hello World
6.3 實例10:用註釋式開發實現資料的增加、刪除、修改和查詢
6.4 實例11:用響應式開發方式開發WebFlux
6.5 實例12:用WebFlux 模式操作MongoDB 資料庫,實現資料的
增加、刪除、修改和查詢功能
[ 第三篇 ] 進階篇
07 Spring Boot 進階
7.1 剖面導向程式設計
7.2 認識IoC 容器和Servlet 容器
7.3 篩檢程式與監聽器
7.4 自動設定
7.5 元註釋
7.6 例外處理
7.7 單元測試
08 用ORM 操作SQL資料庫
8.1 認識Java 的資料庫連接範本JDBCTemplate
8.2 JPA—Java 持久層API
8.3 認識JPA 的介面
8.4 JPA 的查詢方式
8.5 實例27:用JPA 開發文章管理模組
8.6 實現自動填充欄位
8.7 掌握關係對映開發
8.8 認識MyBatis—Java 資料持久層架構
8.9 實例31:用MyBatis 實現資料的增加、刪除、修改、查詢和分頁
8.10 比較JPA 與MyBatis
09 介面架構風格-- RESTful
9.1 REST—前後台間的通訊方式
9.2 設計統一的RESTful 風格的資料介面
9.3 實例32:為手機APP、PC、H5網頁提供統一風格的API
9.4 實例33:用Swagger 實現介面文件
9.5 用RestTemplate 發起請求
10 整合安全架構,實現安全認證和授權
10.1 Spring Security—Spring 的安全架構
10.2 設定Spring Security
10.3 實例36:用Spring Security 實現後台登入及許可權認證功能
10.4 許可權控制方式
10.5 認識JWT
10.6 實例39:用JWT 技術為Spring Boot的API 增加認證和授權保護
10.7 Shiro—Apache 通用安全架構
10.8 實例40:用Shiro 實現管理後台的動態許可權功能
10.9 比較Spring Security 與Shiro
11 整合Redis,實現高平行處理
11.1 認識Spring Cache
11.2 認識Redis
11.3 Redis 的資料類型
11.4 用RedisTemplate 操作Redis的5 種資料類型
11.5 實例47:用Redis 和MyBatis 完成快取資料的增加、刪除、修改、
查詢功能
11.6 實例48:用Redis 和JPA 實現快取文章和點擊量
11.7 實例49:實現分散式Session
12 整合RabbitMQ,實現系統間的資料交換
12.1 認識RabbitMQ
12.2 RabbitMQ 的基本概念
12.3 RabbitMQ 的6 種工作模式
12.4 認識AmqpTemplate 介面
12.5 在Spring Boot 中整合RabbitMQ
12.6 在Spring Boot 中實現RabbitMQ的4 種發送/ 接收模式
12.7 實例54:實現訊息佇列延遲功能
13 整合NoSQL 資料庫,實現搜尋引擎
13.1 Elasticsearch—搜尋應用伺服器
13.2 實例55:用ELK 管理Spring Boot應用程式的記錄檔
13.3 實例56:在Spring Boot 中整合Elasticsearch,實現增加、刪除、
修改、查詢文件的功能
13.4 Elasticsearch 查詢
13.5 實例57:實現產品搜尋引擎
13.6 Solr—搜尋應用伺服器
13.7 實例58:在Sping Boot 中整合Solr,實現資料的增加、刪除、
修改和查詢
13.8 比較Elasticsearch 和Solr
[ 第四篇 ] 專案實戰篇
14 開發企業級通用的後台系統
14.1 用JPA 實現實體間的對映關係
14.2 用Spring Security 實現動態授權(RBAC)功能
14.3 監控Spring Boot 應用
15 實現一個類似「京東」的電子商務商場
15.1 用Spring Security 實現會員系統
15.2 整合會員系統(Web、APP 多端、多方式註冊登入)和後台系統
15.3 實現購物系統
15.4 用Redis 實現分散式秒殺系統
15.5 用RabbitMQ 實現訂單過期取消功能
15.6 實現結算和支付功能
序/導讀
前言
寫作初衷
因為15 歲的侄兒對Web 後端開發很有興趣,於是買了十多本關於青少年程式設計的圖書給他。但是,他讀過之後感覺並不適用,純理論知識的圖書很枯燥,太實戰的又摸不著頭腦。所以,筆者想嘗試來寫一本符合自己期望的圖書,當然這是主觀願望,筆者個人也認為市面上很多圖書非常不錯,只是針對讀者群不同。
正好,在筆者熟悉的C、Python、PHP、Go 和Java 語言中,Java 的Spring Boot 架構技術就像搭積木一樣簡