J2EE專案中為什麼選擇SSH框架

菜的摳腳弟弟發表於2014-01-10

首先,SSH框架的明顯優勢在於:

1. 典型J2EE三層架構體現MVC思想,便於敏捷開發出新的需求,降低開發時間成本;

2. 良好的可擴充套件性,SSH有強大的使用者群體支援,針對特殊功能需求可循求更多更廣的技術幫助;

3. 良好的可維護性,需求變動頻繁,三層架構因為邏輯層和展現層的合理分離,可使需求修改的風險降低到最低可以輕鬆的進行二次開發;

4. 優秀的解耦性,ssh三層構架,控制層依賴於業務邏輯層,但絕不與任何具體的業務邏輯元件耦合,只與介面耦合;同樣,業務邏輯層依賴於DAO層,也不會與任何具體的DAO元件耦合,而是面向介面程式設計。採用這種方式的軟體實現,即使軟體的部分發生改變,其他部分也不會改變

其次,就單個技術而言,Struts,Spring,Hibernate適合於本專案。

論struts與jsf,二者在功能上並沒有本質差別,同時也無法判斷誰優誰劣。某種程度上jsf的功能會相對較多。例如jsf的taglib標籤庫。但出於本次專案,豐富的便籤庫並不能讓jsf就更突出,反而會是一種浪費。同時在整合spring+Hibernate上,struts會相對簡單,例如在整合spring時,jsf+spring需額外要加入jsf-spring.jar包,並且在web.xml配置檔案總加入Listener;

論Hibernate與JDBC,Hibernate則以物件導向方式運算元據庫,解決jdbc中需要編寫大量的Sql語句,在對資料庫的CRUD上,Hibernate更為簡單和便捷,同時還擁有一級,二級,查詢快取功能,在關閉資源時更為便捷。並且,Hibernate的程式碼量遠少於JDBC,使得專案更顯健壯;

論spring的Ioc及AOP思想

Spring的ioc使得Action僅僅是充當了Service的控制工具,而這些業務的具體實現便交給了業務實現類所提供的方法介面,層與層之間實現了完全脫耦,使程式執行起來效率更高,維護起來也方便。在AOP思想上,Spring容器封裝了所有對事務處理的功能,包括異常時事務回滾,操作成功時資料提交等複雜業務功能,避免了每次對資料操作都要先獲得Session例項來啟動事務/提交/回滾事務還有繁瑣的Try/Catch操作。

 

最後在使用SSH框架的時候,可將SSH三層結構中的中間層細分為Web層,service層,DAO層,PO層。其中,web層,負責控制業務邏輯層與表現層的互動,即Controler;Service層通過對DAO層的呼叫,完成系統所要求的業務邏輯;DAO層,負責與持久化物件互動。該層封裝了資料的CRUD的操作;PO,持久化物件。將關係型資料庫的資料對映成物件,實現以物件導向方式運算元據庫,該層採用Hibernate作為ORM框架。Spring的作用貫穿整個中間層,將Web層、Service層、DAO層及PO無縫整合,其資料服務層用來存放資料。

相關文章