海報:
第1章 從一個簡單的Web應(yīng)用 1
正所謂“工欲善其事,必先利其器”,在正式開始設(shè)計并開發(fā)我們的輕量級Java Web框架之前,有必要首先掌握以下技能:
使用IDEA搭建并開發(fā)Java項目;
使用Maven自動化構(gòu)建Java項目;
使用Git管理項目源代碼。
1.1 使用IDEA創(chuàng)建Maven項目 3
1.1.1 創(chuàng)建IDEA項目 3
1.1.2 調(diào)整Maven配置 3
1.2 搭建Web項目框架 5
1.2.1 轉(zhuǎn)為Java Web項目 5
1.2.2 添加Java Web的Maven依賴 6
1.3 編寫一個簡單的Web應(yīng)用 10
1.3.1 編寫 Servlet類 10
1.3.2 編寫JSP頁面 11
1.4 讓W(xué)eb應(yīng)用跑起來 12
1.4.1 在IDEA中配置Tomcat 12
1.4.2 使用Tomcat的Maven插件 13
1.4.3 以Debug方式運(yùn)行程序 13
1.5 將代碼放入Git倉庫中 14
1.5.1 編寫.gitignore文件 14
1.5.2 提交本地 Git 倉庫 15
1.5.3 推送遠(yuǎn)程Git倉庫 15
1.5.4 總結(jié) 16
第2章 為Web應(yīng)用添加業(yè)務(wù)功能 17
我們將在這個應(yīng)用的基礎(chǔ)上增加一些業(yè)務(wù)功能,您將學(xué)會更多有關(guān)項目實戰(zhàn)的技能,具體包括:
如何進(jìn)行需求分析;
如何進(jìn)行系統(tǒng)設(shè)計;
如何編寫應(yīng)用程序。
2.1 需求分析與系統(tǒng)設(shè)計 19
2.1.1 需求分析 19
2.1.2 系統(tǒng)設(shè)計 19
2.2 動手開發(fā)Web應(yīng)用 21
2.2.1 創(chuàng)建數(shù)據(jù)庫 22
2.2.2 準(zhǔn)備開發(fā)環(huán)境 22
2.2.3 編寫模型層 23
2.2.4 編寫控制器層 25
2.2.5 編寫服務(wù)層 27
2.2.6 編寫單元測試 28
2.2.7 編寫視圖層 31
2.3 細(xì)節(jié)完善與代碼優(yōu)化 31
2.3.1 完善服務(wù)層 32
2.3.2 完善控制器層 59
2.3.3 完善視圖層 60
2.4 總結(jié) 65
第3章 搭建輕量級Java Web框架 66
我們需要這樣的框架,它足夠輕量級、足夠靈巧,不妨給它取一個優(yōu)雅的名字――Smart Framework,本章我們就一起來實現(xiàn)這個框架。
您將通過本章的學(xué)習(xí),掌握如下技能:
如何快速搭建開發(fā)框架;
如何加載并讀取配置文件;
如何實現(xiàn)一個簡單的IOC容器;
如何加載指定的類;
如何初始化框架。
3.1 確定目標(biāo) 68
3.2 搭建開發(fā)環(huán)境 70
3.2.1 創(chuàng)建框架項目 70
3.2.2 創(chuàng)建示例項目 73
3.3 定義框架配置項 74
3.4 加載配置項 75
3.5 開發(fā)一個類加載器 78
3.6 實現(xiàn)Bean容器 87
3.7 實現(xiàn)依賴注入功能 90
3.8 加載Controller 93
3.9 初始化框架 97
3.10 請求轉(zhuǎn)發(fā)器 98
3.11 總結(jié) 109
第4章 使框架具備AOP特性 110
在本章中,讀者將學(xué)到大量有用的技術(shù),具體包括:
如何理解并使用代理技術(shù);
如何使用Spring提供的AOP技術(shù);
如何使用動態(tài)代理技術(shù)實現(xiàn)AOP框架;
如何理解并使用ThreadLocal技術(shù);
如何理解數(shù)據(jù)庫事務(wù)管理機(jī)制;
如何使用AOP框架實現(xiàn)事務(wù)控制。
4.1 代理技術(shù)簡介 112
4.1.1 什么是代理 112
4.1.2 JDK動態(tài)代理 114
4.1.3 CGlib動態(tài)代理 116
4.2 AOP技術(shù)簡介 118
4.2.1 什么是AOP 118
4.2.2 寫死代碼 119
4.2.3 靜態(tài)代理 120
4.2.4 JDK動態(tài)代理 121
4.2.5 CGLib動態(tài)代理 122
4.2.6 Spring AOP 124
4.2.7 Spring + AspectJ 136
4.3 開發(fā)AOP框架 142
4.3.1 定義切面注解 142
4.3.2 搭建代理框架 143
4.3.3 加載AOP框架 150
4.4 ThreadLocal簡介 158
4.4.1 什么是ThreadLocal 158
4.4.2 自己實現(xiàn)ThreadLocal 161
4.4.3 ThreadLocal使用案例 163
4.5 事務(wù)管理簡介 172
4.5.1 什么是事務(wù) 172
4.5.2 事務(wù)所面臨的問題 173
4.5.3 Spring的事務(wù)傳播行為 175
4.6 實現(xiàn)事務(wù)控制特性 178
4.6.1 定義事務(wù)注解 178
4.6.2 提供事務(wù)相關(guān)操作 181
4.6.3 編寫事務(wù)代理切面類 182
4.6.4 在框架中添加事務(wù)代理機(jī)制 184
4.7 總結(jié) 185
第5章 框架優(yōu)化與功能擴(kuò)展 186
本章將對現(xiàn)有框架進(jìn)行優(yōu)化,并提供一些擴(kuò)展功能。通過本章的學(xué)習(xí),讀者可以了解到:
如何優(yōu)化Action參數(shù);
如何實現(xiàn)文件上傳功能;
如何與Servlet API完全解耦;
如何實現(xiàn)安全控制框架;
如何實現(xiàn)Web服務(wù)框架。
5.1 優(yōu)化Action參數(shù) 188
5.1.1 明確Action參數(shù)優(yōu)化目標(biāo) 188
5.1.2 動手優(yōu)化Action參數(shù)使用方式 188
5.2 提供文件上傳特性 191
5.2.1 確定文件上傳使用場景 191
5.2.2 實現(xiàn)文件上傳功能 194
5.3 與Servlet API解耦 214
5.3.1 為何需要與Servlet API解耦 214
5.3.2 與Servlet API解耦的實現(xiàn)過程 215
5.4 安全控制框架――Shiro 219
5.4.1 什么是Shiro 219
5.4.2 Hello Shiro 220
5.4.3 在Web開發(fā)中使用Shiro 224
5.5 提供安全控制特性 230
5.5.1 為什么需要安全控制 230
5.5.2 如何使用安全控制框架 231
5.5.3 如何實現(xiàn)安全控制框架 242
5.6 Web服務(wù)框架――CXF 261
5.6.1 什么是CXF 261
5.6.2 使用CXF開發(fā)SOAP服務(wù) 262
5.6.3 基于SOAP的安全控制 278
5.6.4 使用CXF開發(fā)REST服務(wù) 291
5.7 提供Web服務(wù)特性 308
5.8 總結(jié) 329
附錄A Maven快速入門 330
附錄B 將構(gòu)件發(fā)布到Maven中央倉庫 342