《架構探險——從零開始寫JavaWeb框架》是2015年8月電子工業出版社出版的圖書,作者是黃勇。
基本介紹
- 書名:架構探險——從零開始寫JavaWeb框架
- 作者:黃勇
- ISBN:9787121268298
- 出版社:電子工業出版社
- 出版時間:2015年8月
- 頁數:364
- 字數:509千字
- 開本:16(185*235)
- 版次:01-01
內容簡介,圖書目錄,
內容簡介
本書首先從一個簡單的 Web 套用開始,讓讀者學會如何使用 IDEA、Maven、Git 等開發工具搭建 Java Web 套用;接著通過一個簡單的套用場景,為該 Web 套用添加若干業務功能,從需求分析與系統設計開始,帶領讀者動手完成該 Web 套用,完善相關細節,並對已有代碼進行最佳化;然後基於傳統 Servlet 框架搭建一款輕量級 Java Web 框架,一切都是從零開始,逐個實現類載入器、Bean 容器、IoC 框架、MVC 框架,所涉及的代碼也是整個框架的核心基礎。為了使框架具備 AOP 特性,從代理技術講到 AOP 技術,從 ThreadLocal 技術講到事務控制技術。最後對框架進行最佳化與擴展,通過對現有框架的最佳化,使其可以提供更加完備的功能,並以擴展 Web 服務外掛程式與安全控制外掛程式為例,教會讀者如何設計一款可擴展的Web套用框架。
圖書目錄
目 錄
第1章 從一個簡單的Web套用1
正所謂“工欲善其事,必先利其器”,在正式開始設計並開發我們的輕量級Java Web框架之前,有必要首先掌握以下技能:
使用IDEA搭建並開發Java項目;
使用Maven自動化構建Java項目;
使用Git管理項目原始碼。
1.1 使用IDEA創建Maven項目3
1.1.1 創建IDEA項目3
1.1.2 調整Maven配置3
1.2 搭建Web項目框架5
1.2.1 轉為Java Web項目5
1.2.2 添加Java Web的Maven依賴6
1.3 編寫一個簡單的Web套用10
1.3.1 編寫 Servlet類10
1.3.2 編寫JSP頁面11
1.4 讓Web套用跑起來12
1.4.1 在IDEA中配置Tomcat12
1.4.2 使用Tomcat的Maven外掛程式13
1.4.3 以Debug方式運行程式13
1.5 將代碼放入Git倉庫中14
1.5.1 編寫.gitignore檔案14
1.5.2 提交本地 Git 倉庫15
1.5.3 推送遠程Git倉庫15
1.5.4 總結16
第2章 為Web套用添加業務功能17
我們將在這個套用的基礎上增加一些業務功能,您將學會更多有關項目實戰的技能,具體包括:
如何進行需求分析;
如何進行系統設計;
如何編寫應用程式。
2.1 需求分析與系統設計19
2.1.1 需求分析19
2.1.2 系統設計19
2.2 動手開發Web套用21
2.2.1 創建資料庫22
2.2.2 準備開發環境22
2.2.3 編寫模型層23
2.2.4 編寫控制器層25
2.2.5 編寫服務層27
2.2.6 編寫單元測試28
2.2.7 編寫視圖層31
2.3 細節完善與代碼最佳化31
2.3.1 完善服務層32
2.3.2 完善控制器層59
2.3.3 完善視圖層60
2.4 總結65
第3章 搭建輕量級Java Web框架66
我們需要這樣的框架,它足夠輕量級、足夠靈巧,不妨給它取一個優雅的名字——Smart Framework,本章我們就一起來實現這個框架。
您將通過本章的學習,掌握如下技能:
如何快速搭建開發框架;
如何載入並讀取配置檔案;
如何實現一個簡單的IOC容器;
如何載入指定的類;
如何初始化框架。
3.1 確定目標68
3.2 搭建開發環境70
3.2.1 創建框架項目70
3.2.2 創建示例項目73
3.3 定義框架配置項74
3.4 載入配置項75
3.5 開發一個類載入器78
3.6 實現Bean容器87
3.7 實現依賴注入功能90
3.8 載入Controller93
3.9 初始化框架97
3.10 請求轉發器98
3.11 總結109
第4章 使框架具備AOP特性110
在本章中,讀者將學到大量有用的技術,具體包括:
如何理解並使用代理技術;
如何使用Spring提供的AOP技術;
如何使用動態代理技術實現AOP框架;
如何理解並使用ThreadLocal技術;
如何理解資料庫事務管理機制;
如何使用AOP框架實現事務控制。
4.1 代理技術簡介112
4.1.1 什麼是代理112
4.1.2 JDK動態代理114
4.1.3 CGlib動態代理116
4.2 AOP技術簡介118
4.2.1 什麼是AOP118
4.2.2 寫死代碼119
4.2.3 靜態代理120
4.2.4 JDK動態代理121
4.2.5 CGLib動態代理122
4.2.6 Spring AOP124
4.2.7 Spring + AspectJ136
4.3 開發AOP框架142
4.3.1 定義切面註解142
4.3.2 搭建代理框架143
4.3.3 載入AOP框架150
4.4 ThreadLocal簡介158
4.4.1 什麼是ThreadLocal158
4.4.2 自己實現ThreadLocal161
4.4.3 ThreadLocal使用案例163
4.5 事務管理簡介172
4.5.1 什麼是事務172
4.5.2 事務所面臨的問題173
4.5.3 Spring的事務傳播行為175
4.6 實現事務控制特性178
4.6.1 定義事務註解178
4.6.2 提供事務相關操作181
4.6.3 編寫事務代理切面類182
4.6.4 在框架中添加事務代理機制184
4.7 總結185
第5章 框架最佳化與功能擴展186
本章將對現有框架進行最佳化,並提供一些擴展功能。通過本章的學習,讀者可以了解到:
如何最佳化Action參數;
如何實現檔案上傳功能;
如何與Servlet API完全解耦;
如何實現安全控制框架;
如何實現Web服務框架。
5.1 最佳化Action參數188
5.1.1 明確Action參數最佳化目標188
5.1.2 動手最佳化Action參數使用方式188
5.2 提供檔案上傳特性191
5.2.1 確定檔案上傳使用場景191
5.2.2 實現檔案上傳功能194
5.3 與Servlet API解耦214
5.3.1 為何需要與Servlet API解耦214
5.3.2 與Servlet API解耦的實現過程215
5.4 安全控制框架——Shiro219
5.4.1 什麼是Shiro219
5.4.2 Hello Shiro220
5.4.3 在Web開發中使用Shiro224
5.5 提供安全控制特性230
5.5.1 為什麼需要安全控制230
5.5.2 如何使用安全控制框架231
5.5.3 如何實現安全控制框架242
5.6 Web服務框架——CXF261
5.6.1 什麼是CXF261
5.6.2 使用CXF開發SOAP服務262
5.6.3 基於SOAP的安全控制278
5.6.4 使用CXF開發REST服務291
5.7 提供Web服務特性308
5.8 總結329
附錄A Maven快速入門330
附錄B 將構件發布到Maven中央倉庫342