對于一個(gè)軟件公司而言,在做項(xiàng)目或產(chǎn)品的過程中,為何要應(yīng)用一定的技術(shù)框架呢?相信有一定規(guī)模一定歷史積淀的軟件公司里,都存在著自己特有的技術(shù)框架,我們應(yīng)用框架開發(fā)無外乎是本著提高代碼的重用性、降低開發(fā)應(yīng)用模塊的技術(shù)難度,增強(qiáng)軟件的維護(hù)性,進(jìn)爾達(dá)到提高工作效率、降低生產(chǎn)成本的目的。這也是技術(shù)框架存在的根本和意義所在。
本人是個(gè)對技術(shù)的推崇者或者說是有些圖騰崇拜的人,從學(xué)習(xí)和使用 java 的第一天開始,就對這種純粹的面向?qū)ο蟮木幊陶Z言產(chǎn)生了濃厚的興趣,從早期秉燭夜讀《 java 編程思想》、《 java 核心技術(shù)卷 I 、卷 II 》到《 J2EE 設(shè)計(jì)與模式》。。。《深入淺出 Hibernate 》。。。《 Spring in Action 》等,切身感受到當(dāng)今主流 java 應(yīng)用技術(shù)的發(fā)展,也很感謝前輩們?yōu)榇蠹议_創(chuàng)了應(yīng)用技術(shù)之先河,為我輩指明了發(fā)展的方向和前進(jìn)的道路。
在當(dāng)今技術(shù)潮流日新月異的時(shí)代各種各樣的技術(shù)框架林林總總,很難去評價(jià)個(gè)中孰優(yōu)孰劣,個(gè)人覺得在項(xiàng)目開發(fā)過程中最適合的框架就是最好的,以項(xiàng)目的規(guī)模和特點(diǎn)來決定對技術(shù)框架的選型。現(xiàn)就個(gè)人對于框架的開發(fā)的一些體會和大家一起交流一下,前端采用類 Struts 模式做 MVC, 我覺得 MVC 的精華所在就在于請求的匯集和請求的分發(fā),采用 filter+mainservlet 的方式,在 filter 類中可以進(jìn)行對各種請求的約束和限制處理,同時(shí)可以進(jìn)行對請求合法性的判定和校驗(yàn),也可以實(shí)現(xiàn)達(dá)到負(fù)載均衡的處理,也可以根據(jù)實(shí)際的項(xiàng)目需要設(shè)置多個(gè) filter 類進(jìn)行分類過濾。通過 filter 類的合法的請求全部由統(tǒng)一的 mainservlet 主控器接口進(jìn)行分發(fā)處理,在這里可以添加對線程的約束和控制,以保證所有請求可以順利的分發(fā)。業(yè)務(wù)邏輯層采用 Action+BPO 的模式, Action 作為動作的描述, BPO 作為對于動作進(jìn)行響應(yīng)的業(yè)務(wù)邏輯處理。持久層部分采用 Hibernate 和 DAO+VO 兩種模式并存的方式,持久層部分之所以采用兩種模式處理,主要是考慮到業(yè)務(wù)邏輯的復(fù)雜度,對于多表及連和復(fù)雜的業(yè)務(wù)查詢處理,感覺配置 Hibernate 文件也相當(dāng)?shù)膹?fù)雜(也許是本人應(yīng)用 Hibernate 的深度還不夠,對 HQL 語言的認(rèn)識還比較膚淺),因而還采取傳統(tǒng)的 jdbc 訪問模式來處理。事務(wù)處理用 Spring 框架來進(jìn)行處理。在表示層的 jsp 中只進(jìn)行 tag 的屬性設(shè)置和 java 的表達(dá)式的輸出,所有的 java 邏輯代碼全部用 tag 來進(jìn)行封裝。有興趣的朋友可以發(fā) e-mail 給我,來進(jìn)行此框架的交流 E-mail:syangsheep@163.com, 同時(shí)也歡迎大家拿出自己應(yīng)用的框架來一起進(jìn)行交流和探討。