系統架構我想把它分爲兩部分,一是技術架構,二是業務架構。
做任何一個系統,首先都要選擇合適的技術來開發,這個要從兩方面結合起來看,一是系統業務的特點,
二是團隊成員的技術結構,這裏面的權重比我覺的是業務>技術。在鞋服行業,由於它的組織結構的特殊性
(在全國各地都有分支結構),採用b/s結構爲首選,技術方面我們團隊只對Java熟悉,所以這次技術的選型
很快就確定了.
Java的流行框架目前很多,可以說是眼花繚亂,我們用的還是最普通的架構,SSH(struts+spring+hibernate)
,但是我們經過了自已的改寫,形成了自已的一套技術框架.(改寫重要參考的是springside).
[總的思想]
1:以業務層爲核心.
2:低耦合.儘量降低每層之間的聯繫.
[特點]
1:整個系統只有一個Dao,Dao置於每個業務對象裏面.
2:整個系統只有一個Action,Action只起一個承上起來的作用.
3:普通的增加,修改,刪除,使用Hibernate,複雜的查詢直接使用原生SQL
4:顯示層支持JSON,Freemark,Velocity,Ecxel,PDF等
5:學習簡單,開發速度快。只需要開發業務邏輯就可以。
[分層MVC]
顯示層--->業務層--->數據庫層
顯示層:struts1.1實現,把一些常用的功能封裝成tag.
業務層:實現最基本的單表CRUD接口和主子表CRUD接口
數據層:Dao接口的實現,分爲讀接口和寫接口。寫接口有事務控制.
[業務層和數據庫層之間的關係]
數據庫層服務於業務層,每個業務對象擁有一個Dao屬性,業務層不控制事務,但業務層可以決定哪些操作
需要用事務,哪些不用。數據庫層支持單表操作的事務,多表操作的事務,混合操作的事務,具體含義是:
1:單表操作事務控制:當前操作只有一個對象。
2:多表操作事務控制:當前操作有N(N>=1)個對象.
3:混合操作事務控制:當前的操作對象很多,操作的方式也很多,比如:保存一條記錄,刪除一條記錄,執行
一個sql腳本,執行一個儲值過程
[依賴關係]
顯示層Action是獨立的,業務層依賴於數據庫層,數據庫層是獨立的。那顯示層如何綁定找到對應的業務對
象呢,strutsForm裏默認一個spring中定義的業務對象,或者通過參數service指定,業務方法是參數method指定.