一. 項目目的 java
組合經常使用開發框架,擯棄這些框架中重量級的功能,簡化框架配置。造成一套可以高效開發出優質系統的組合框架。 web
二.項目組件 spring
JDK1.6,json
開源框架: EXT3.0 SPRING2.5 Log4j緩存
自定義框架:PJDBC1.0 服務器
三. 項目特點 session
1.能作到servlet全透明,看不到httpsession,request,response……。架構
2.可擴充fiter,針對特定 控制層、業務層 實現不一樣的過濾方案。app
3.1app1page,一個應用一個頁面。框架
4.先後臺默認映射,大大提升開發效率
1. 系統架構
2. 先後臺交互方案
<[if gte vml 1]> <[endif]>
Ext ----(全部數據封裝成json)---> 字符集fiter --à Json轉化器(json到 Json.java的轉化) -à是否登陸fiter -----> 日誌fiter(誰什麼時間訪問什麼模塊) -----à 控制轉發器(截取url經過spring上下文獲取Action) -à Action (繼承BasicAction,負責將json類型轉化成BO,業務類之間的協調) ---àServie(全事務)---à(無方言簡單操做JDBC接口、其餘操做hibernate、ibatis接口)---à異常fiter(全部異常轉化成MessageException拋出,message屬性爲空爲「系統未知錯誤」)---àExt
|
|
Ext提交 |
url:/example/ext1.json 參數 method:方法名 |
字符集 |
字符集 |
Json轉化器 |
轉化器類型。默認爲 Json |
日誌fiter |
須要作日誌的模塊 列表 |
轉發器 |
更具 url 截取 最後的/與?之間的字符,若是有.,再取.前的字符放到。再由spring來控制轉發。 |
BasicAction |
<[if !supportLists]>1. <[endif]>提供個性過濾器定製 <[if !supportLists]>2. <[endif]>將request,reponse……做爲內部變量封裝 |
JDBC |
實現JDBC方案的最優化,仿照hibernate緩存 |
異常 |
服務器全部任務處理完畢後 |
Ext |
Over |
3. 字段映射
1.默認方案
規範:web頁面字段 == bo == 持久層字段名
好處:能夠實現0配置。
壞處:必須嚴格控制界面字段與BO與持久層字段名一致
(極限狀況:web頁面字段 == hashmap == 持久層字段名
好處:用hashmap替代BO,只保證持久層以界面字段名一致
壞處:去掉BO業務實體不明顯
)
2.定製方案
自定義各層間字段名轉化規範。
好處:容易擴展
壞處:容易出錯
(
項目先實現一種,留有接口給後來人實現。
用hashmap保存字段間的映射關係。
)
3.配置方案
用xml肯定web頁面字段bo與持久層的映射關係。
<module>
<field>
<view>custname</view>
<bo>custName</bo>
<db>cust_name</db>
</field>
</module>
好處:省去在各層之間業務實體進行轉換的麻煩。
壞處:存在大量xml