
0人評分過此書
Spring Boot情境式網站開發指南:使用Spring Data JPA、Spring Security、Spring Web Flow
內容簡介:使用全Spring框架建構新一代企業級網站!本書一次蒐錄所有技能!如何讓網站使用者有更佳的體驗一直是歷久不衰的話題。使用SpringWebFlow框架讓使用者在預先定義好的情境裡,逐步被引導完成複雜操作,我們稱為情境式網站。伴隨企業資料上雲,物聯網、智慧型手機的普及,資安事件也逐年攀升;網路攻擊的頻率不再屈指可數,已經成為企業營運的日常威脅。OWASP統計的TOP10攻擊模式提供企業資安防禦的方向,使用SpringSecurity框架加上簡易設定就可以築起堅實城牆。Spring框架是Java語言裡最熱門的框架。打造一個功能強大、資訊安全的網站,使用SpringMVC、SpringSecurity、SpringDataJPA,再搭配SpringBoot以簡化設定並快速布署幾乎已經是業界開發標準。本書介紹Spring框架模組的運作機制,書末專案實作結合SpringWebFlow以提升使用者操作體驗,完整呈現新一代企業網站的建置策略。
-
01 使用Maven管理Java專案
-
1.1 認識Maven的專案管理思維與架構
-
1.1.1 Maven的安裝和設定
-
1.1.2 Maven儲存庫(Repository)
-
-
1.2 使用Maven指令建立專案
-
1.2.1 使用maven-archetype-quickstart模板建立Java SE專案
-
1.2.2 使用maven-archetype-webapp模板建立Java Web專案
-
1.2.3 Maven專案的生命週期
-
-
1.3 結合Maven與Eclipse
-
1.3.1 Eclipse內建Maven
-
1.3.2 使用Eclipse以Maven建立Java SE專案
-
1.3.3 使用Eclipse以Maven建立Java Web專案
-
1.3.4 使用Eclipse匯入Maven專案
-
-
-
02 JPA與資料庫
-
2.1 JPA介紹
-
2.2 JPA基礎
-
2.2.1 Persistence Unit與persistence.xml
-
2.2.2 Persistent Context、EntityManager與Entity生命週期管理
-
2.2.3 第一級快取(L1 Cache)
-
2.2.4 EntityManager與Transaction
-
-
2.3 Entity的繼承(Inheritance)設計
-
2.3.1 使用SINGLE_TABLE策略
-
2.3.2 使用JOINED策略
-
2.3.3 使用TABLE_PER_CLASS策略
-
2.3.4 比較SINGLE_TABLE、JOINED、TABLE_PER_CLASS差異
-
-
2.4 Entity的關聯(Relationships)設計
-
2.4.1 使用OneToOne設計
-
2.4.2 使用OneToMany設計
-
2.4.3 使用ManyToMany設計與自定義的欄位型態
-
2.4.4 FetchType與CascadeType
-
-
2.5 指定主鍵(Primary Key)值
-
2.5.1 主鍵使用單一欄位且內容為流水號
-
2.5.2 主鍵使用複合欄位
-
-
-
03 使用JPQL查詢語言
-
3.1 使用JPQL基本語法
-
3.1.1 WHERE敘述的條件值使用字面常量(Literal)
-
3.1.2 ORDER BY
-
3.1.3 DISTINCT
-
3.1.4 WHERE敘述的條件值使用繫結變量(Bind Variable)
-
3.1.5 使用建構子敘述封裝複數欄位查詢結果
-
3.1.6 使用TUPLE封裝複數欄位查詢結果
-
3.1.7 使用具資料庫特色的SQL語句
-
-
3.2 使用JOIN
-
3.2.1 INNER JOIN
-
3.2.2 LEFT OUTER JOIN
-
3.2.3 FETCH JOIN
-
3.2.4 欄位型態為Map的Join
-
-
3.3 在WHERE敘述使用比較關鍵字
-
3.3.1 BETWEEN
-
3.3.2 IN
-
3.3.3 LIKE
-
3.3.4 NULL
-
3.3.5 EMPTY
-
3.3.6 MEMBER OF
-
-
3.4 使用聚合(Aggregation)函式
-
3.4.1 AVG()、COUNT()、MAX()、MIN()、SUM()
-
3.4.2 GROUP BY
-
-
3.5 使用子查詢(Subquery)
-
3.5.1 子查詢
-
3.5.2 EXISTS
-
3.5.3 ALL與ANY
-
-
3.6 使用JPQL函式
-
3.6.1 字串函式
-
3.6.2 數學函式
-
3.6.3 日期函式
-
3.6.4 資料庫內建函式
-
-
3.7 其他
-
3.7.1 集合物件型態的欄位處理方式
-
3.7.2 CASE WHEN
-
-
3.8 隱含(Implicit)的JOIN
-
3.9 使用UPDATE敘述
-
3.10 使用DELETE敘述
-
-
04 Criteria API入門
-
4.1 Criteria API簡介
-
4.1.1 Criteria API的使用方式
-
4.1.2 使用Metamodel API塑模Entity類別
-
-
4.2 使用Criteria API建立型態安全(Typesafe)的查詢
-
4.2.1 使用CriteriaQuery物件建立查詢
-
4.2.2 使用from()建立查詢基礎
-
4.2.3 使用join()查詢Entity間的關聯性
-
4.2.4 使用Expression/Path物件瀏覽查詢欄位
-
4.2.5 使用Expression/Predicate物件限制查詢條件
-
4.2.6 使用orderBy()與groupBy()管理查詢結果
-
4.2.7 使用TypedQuery物件執行查詢
-
-
-
05 使用Spring Data JPA讓ORM更聰明
-
5.1 Spring與ORM
-
5.2 Spring與JPA
-
5.2.1 設定EntityManagerFactory
-
5.2.2 建立Entity類別
-
5.2.3 開發JPA基礎的Repository類別
-
-
5.3 使用Spring Data JPA自動建立Repository物件
-
5.3.1 定義查詢方法
-
5.3.2 定義客製查詢
-
5.3.3 混合客製與基礎查詢
-
-
5.4 交易與傳播(Propagation)
-
5.4.1 使用標註類別@Transactional進行交易
-
5.4.2 使用交易的傳播機制
-
-
-
06 OWASP高風險資安漏洞介紹
-
6.1 OWASP組織與OWASP TOP 10介紹
-
6.2 OWASP資安工具介紹
-
6.2.1 WebGoat
-
6.2.2 WebScarab
-
-
6.3 OWASP TOP 10介紹
-
6.3.1 注入攻擊(Injection)
-
6.3.2 不當的對話管理(Broken Session Management)
-
6.3.3 不當的身分驗證(Broken Authentication)
-
6.3.4 跨站腳本攻擊(Cross-Site Scripting/XSS)
-
6.3.5 不當的存取控制(Broken Access Control)
-
6.3.6 不當的安全性設定(Security Misconfiguration)
-
6.3.7 暴露機敏資料(Sensitive Data Exposure)
-
6.3.8 對於攻擊自覺不足(Insufficient Attack Protection)
-
6.3.9 跨站請求偽造(Cross-Site Request Forgery,CSRF)
-
6.3.10 使用不安全的元件(Using Components with Known Vulnerabilities)
-
6.3.11 未受防護的APIs (Under-protected APIs)
-
6.3.12 XML外部解析器漏洞(XML External Entity/XXE)
-
6.3.13 不安全的反序列化漏洞(Insecure Deserialization)
-
6.3.14 記錄與監控不足風險(Insufficient Logging & Monitoring)
-
-
-
07 使用Spring Security建構安全的網站
-
7.1 Spring Security入門
-
7.1.1 了解Spring Security模組
-
7.1.2 啟用Spring Security
-
7.1.3 建立簡單的安全設定
-
-
7.2 選擇使用者資訊儲存機制
-
7.2.1 使用IN-MEMORY儲存機制
-
7.2.2 使用關聯式資料表儲存機制
-
7.2.3 使用客製化儲存機制
-
-
7.3 資源請求的攔截處理
-
7.3.1 使用Spring Expressions Language限制資源存取
-
7.3.2 使用HTTPS加密通道
-
7.3.3 防護跨站請求偽造(CSRF)
-
-
7.4 客製登入表單頁面
-
7.4.1 指定登入頁面
-
7.4.2 啟用記憶使用者(Remember-Me)功能
-
7.4.3 登出(Logout)機制
-
-
7.5 保護JSP呈現的資訊
-
7.5.1 使用Spring Security的JSP標籤函式庫
-
-
-
08 使用Spring Boot簡化Spring開發
-
8.1 Spring Boot簡介
-
8.2 使用Spring Boot開發專案
-
8.2.1 以Spring Initializr建立Spring Boot的WAR專案
-
8.2.2 以啟動器(Starter)簡化專案關聯(Dependencies)
-
8.2.3 以自動化設定(Auto-Configuration)簡化專案設定
-
8.2.4 啟動Spring Boot的WAR專案
-
8.2.5 設定日誌紀錄(Logging)參數
-
8.2.6 建立Spring Boot的JAR專案並啟動
-
8.2.7 Spring Boot的JAR、WAR專案差別
-
-
8.3 使用Spring Boot執行器取得網站執行狀況
-
8.3.1 執行器(Actuator)簡介
-
8.3.2 啟用和設定Spring Boot執行器
-
8.3.3 使用Spring Boot執行器預設端點(Endpoints)
-
8.3.4 建構Spring Boot執行器客製端點(Endpoints)
-
-
-
09 使用Spring Web Flow打造情境式網站
-
9.1 情境式系統設計
-
9.2 設定Spring Web Flow
-
9.2.1 設定流程建構者(Flow Builder)
-
9.2.2 設定流程登錄檔(Flow Registry)
-
9.2.3 設定流程執行器(Flow Executor)
-
9.2.4 處理流程請求
-
-
9.3 建構Spring Web Flow
-
9.3.1 狀態(States)
-
9.3.2 轉換(Transitions)
-
9.3.3 資料(Data)
-
-
9.4 綜合實作:蛋糕訂購流程
-
9.4.1 定義蛋糕(Cake)訂購的主流程
-
9.4.2 定義客戶(Customer)相關的子流程
-
9.4.3 定義訂單(Order)相關的子流程
-
9.4.4 定義付款(Payment)相關的子流程
-
9.4.5 以Spring Security實作存取管控
-
-
- 出版地 : 臺灣
- 語言 : 繁體中文
評分與評論
請登入後再留言與評分