目 錄
第Ⅰ部分 Java EE設計模式介紹
第1章 設計模式概覽 3
1.1 何為設計模式 4
1.1.1 如何檢測模式,為何需要模式 6
1.1.2 現實世界中的模式 6
1.2 設計模式基礎 8
1.3 企業模式 8
1.3.1 從Java到企業級Java 9
1.3.2 企業Java模式的齣現 10
1.3.3 設計模式與企業模式 11
1.3.4 當傳統設計模式遇到Java EE 12
1.3.5 當模式變成反模式 13
1.4 小結 14
1.5 相關資料 14
第2章 Java EE基礎 17
2.1 多層架構 19
2.2 客戶端層 20
2.3 中間層 21
2.3.1 Web層 21
2.3.2 業務層 22
2.4 EIS層 23
2.5 Java EE服務器 24
2.6 Java EE Web Profile 25
2.7 Java EE核心原則 25
2.8 約定優於配置 26
2.9 上下文與依賴注入 26
2.10 攔截器 28
2.11 小結 30
2.12 本章練習 30
第Ⅱ部分 實現Java EE設計模式
第3章 門麵模式 33
3.1 何為門麵 34
3.2 使用普通代碼實現門麵模式 36
3.3 使用Java EE實現門麵模式 38
3.3.1 使用無狀態Bean實現門麵 38
3.3.2 使用有狀態Bean實現門麵 41
3.4 何時以及何處該使用門麵模式 42
3.5 小結 43
3.6 本章練習 43
3.7 相關資料 43
第4章 單例模式 45
4.1 何為單例? 46
4.1.1 單例模式類圖 47
4.1.2 使用普通代碼實現單例模式 48
4.2 使用Java EE實現單例模式 53
4.2.1 單例Bean 53
4.2.2 在啓動時使用單例 54
4.2.3 確定啓動順序 56
4.2.4 管理並發 59
4.3 何處以及何時該使用單例模式 63
4.4 小結 63
4.5 本章練習 64
4.6 相關資料 65
第5章 依賴注入與CDI 67
5.1 何為依賴注入? 68
5.2 使用普通代碼實現DI 69
5.3 使用Java EE實現DI 73
5.3.1 @Named注解 75
5.3.2 上下文與依賴注入(CDI) 76
5.3.3 CDI與EJB 77
5.3.4 CDI Bean 77
5.3.5 @Inject注解 79
5.3.6 上下文與作用域 79
5.3.7 命名與EL 80
5.3.8 用於Backing JSF的CDI Bean 81
5.3.9 限定符 81
5.3.10 Alternatives 82
5.3.11 Stereotypes 83
5.3.12 通過CDI實現的其他模式 84
5.4 小結 84
5.5 本章練習 85
5.6 相關資料 85
第6章 工廠模式 87
6.1 何為工廠? 88
6.2 工廠方法 89
6.3 抽象工廠 94
6.4 使用Java EE實現工廠模式 96
6.5 何處以及何時該使用工廠模式 110
6.6 小結 111
6.7 本章練習 111
6.8 相關資料 111
第7章 裝飾模式 113
7.1 何為裝飾器? 114
7.2 使用普通代碼實現裝飾模式 116
7.3 使用Java EE實現裝飾模式 121
7.4 何處以及何時該使用裝飾模式 129
7.5 小結 130
7.6 本章練習 130
7.7 相關資料 131
第8章 麵嚮方麵編程(攔截器) 133
8.1 何為麵嚮方麵編程? 134
8.2 使用普通代碼實現AOP 137
8.3 Java EE中的方麵—— 攔截器 140
8.3.1 攔截器生命周期 145
8.3.2 默認級彆的攔截器 146
8.3.3 攔截器順序 147
8.3.4 CDI攔截器 150
8.4 何處以及何時該使用攔截器 153
8.5 小結 154
8.6 相關資料 155
第9章 異步 157
9.1 何為異步編程 158
9.2 使用普通代碼實現異步模式 161
9.3 Java EE中的異步編程 164
9.3.1 異步Bean 164
9.3.2 異步Servlet 167
9.4 何處以及何時該使用異步編程 172
9.5 小結 174
9.6 本章練習 174
9.7 相關資料 175
第10章 定時器服務 177
10.1 何為定時器服務 178
10.2 使用Java EE實現定時器 181
10.2.1 自動化定時器 181
10.2.2 編程式定時器 183
10.2.3 定時器錶達式 187
10.2.4 事務 190
10.3 小結 191
10.4 本章練習 192
10.5 相關資料 192
第11章 觀察者模式 193
11.1 何為觀察者? 194
11.1.1 說明 195
11.1.2 觀察者類圖 197
11.2 使用普通代碼實現觀察者模式 197
11.3 使用Java EE實現觀察者模式 200
11.4 何處以及何時該使用觀察者模式 209
11.5 小結 210
11.6 本章練習 211
11.7 相關資料 211
第12章 數據訪問模式 213
12.1 何為數據訪問模式? 214
12.2 數據訪問模式概覽 216
12.2.1 數據傳輸對象模式 216
12.2.2 Java持久化架構API與對象關係映射 217
12.3 使用Java EE實現數據訪問模式 218
12.4 何處以及何時該使用數據訪問模式 227
12.5 小結 227
12.6 本章練習 228
12.7 相關資料 228
第13章 REST風格的Web Service 229
13.1 何為REST? 230
13.2 REST的6個約束 232
13.2.1 客戶端-服務器 233
13.2.2 統一接口 233
13.2.3 無狀態 233
13.2.4 可緩存 233
13.2.5 分層係統 234
13.2.6 按需編碼 234
13.3 REST API的理查森能力成熟度模型 234
13.3.1 級彆0:POX(Plain Old XML)沼澤 235
13.3.2 級彆1:資源 235
13.3.3 級彆2:HTTP動詞 235
13.3.4 級彆3:超媒體控件 235
13.4 設計REST風格的API 235
13.4.1 資源命名 236
13.4.2 名詞而非動詞 237
13.4.3 自說明 237
13.4.4 復數而非單數 237
13.4.5 HTTP方法 238
13.4.6 GET 238
13.4.7 POST 239
13.4.8 PUT 239
13.4.9 DELETE 240
13.5 REST實戰 240
13.5.1 users名詞 240
13.5.2 topics名詞與posts名詞 242
13.6 使用Java EE實現REST 244
13.7 HATEOAS 249
13.8 何處以及何時該使用REST 253
13.9 小結 253
13.10 本章練習 254
13.11 相關資料 254
第14章 模型、視圖與控製器模式 255
14.1 何為MVC設計模式? 256
14.2 使用普通代碼實現MVC模式 260
14.3 使用Java EE實現MVC模式 265
14.4 FacesServlet 265
14.5 使用FacesServlet實現MVC 266
14.6 何處以及何時該使用MVC模式 269
14.7 小結 269
14.8 本章練習 270
14.9 相關資料 270
第15章 Java EE中的其他模式 271
15.1 何為WebSockets? 272
15.2 何為麵嚮消息的中間件 275
15.3 何為微服務架構? 277
15.3.1 單塊架構 278
15.3.2 可伸縮性 279
15.3.3 分解為服務 280
15.3.4 微服務的好處 281
15.3.5 天下沒有免費的午餐 282
15.3.6 結論 283
15.4 一些反模式 284
15.4.1 超級類 284
15.4.2 麵條架構 284
15.4.3 哥倫布先生 285
15.4.4 利益之交 285
15.4.5 前沿技術 286
15.4.6 輔助類 286
15.5 相關資料 287
第Ⅲ部分 總 結
第16章 設計模式:好處、壞處與醜陋之處 291
16.1 好處:通往成功之路的模式 292
16.2 壞處:模式的過度使用與濫用 294
16.3 醜陋之處 296
16.4 小結 298
16.5 相關資料 298
· · · · · · (
收起)