熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

基於SSH開發架構的重新分層

2013-11-23 20:23:12  來源: Java開源技術 
    現代的企業開發中越來越多地引入了多層架構設計模式Struts+Spring+Hibernate (一下簡稱為SSH)就是其中之一SSH架構是當前非常火的架構很多金融電信項目大型門戶網站均選擇該架構作為業務支撐架構開發流程也已經非常成熟但是該結構開發起來依舊存在一些問題分析這些問題得先從SSH架構的組成說起
   
    SSH為Struts+Spring+Hibernate的組成方式Struts實現MVCSpring負責架構的結合Hibernate進行數據的持久化通常其分層開發的結構圖(以一個業務新增為例)如下
   

  

 
    這樣的結構滿足了一般的業務需要但是對於當前日益復雜化的WEB的開發卻存在不少問題歸納起來主要有以下幾點的不足
   
    A)DAO和服務層容易出現職責不明由於按照MVC邏輯業務代碼應該寫在Struts Action裡但是其事務的提供卻是配置在Service層為了一組在邏輯上完整的數據操作業務邏輯需要涉及兩個層(Serveice Action)來進行編寫遇到判斷的情況下為了保證完整的事務操作則需要將業務代碼移到Service層完成而通常習慣了在Struts Action裡調用多次Service而產生多個事務而在出現Exception時導致出錯時操作之前調用的Service事務的業務數據沒有回滾
   
    B)當需要返回的數據供AJAX使用操作JSON或XML的的大量使用時開發起來會很費力一段同樣的業務代碼為了使用AJAX和XML可能需要重新編寫一次或者在同一個ACTION裡通過標志來判斷對分層結構造成了比較糟糕的破壞如果設計得不好為了使用JSON和XML還得額外增加大量的配置嚴重降低了開發效率
   
    因此為了克服這些缺點本人對於SSH架構進行了實現了重新的分層共享了業務代碼簡化了開發增強了與AJAX技術MXL技術的結合提供了一種更高效的開發模式
   
    其開發的結構圖如下
   

  

 
    看到這個架構圖有人可能會問Struts Action類的編寫去哪了呢?答案正是這個架構的優點由於業務代碼統一實現IbusinessService接口使得只需要相對固定的幾個 Struts Action類調用Service層的方法便可以完成工作包括JSON格式輸出XML輸出及WebService輸出均調用Service層方法來完成功能這樣便實現了業務代碼的分離以及與前端框架的極大解耦
From:http://tw.wingwit.com/Article/program/Java/ky/201311/28420.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.