J2EE專案中為什麼選擇SSH框架
首先,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無縫整合,其資料服務層用來存放資料。
相關文章
- 為什麼選擇Guice框架GUI框架
- 為什麼選擇Cynefin框架? – zwischenzugs框架
- 免費框架那麼多,為什麼選擇付費的框架框架
- 為什麼選擇使用 OKR 進行專案過程管理OKR
- PostgreSQL Collation 怎麼調整,為什麼很多專案都選擇 CtypeSQL
- Elasticsearch 中為什麼選擇倒排索引而不選擇 B 樹索引Elasticsearch索引
- Aembit為什麼選擇 Rust?Rust
- 為什麼選擇使用Rust?Rust
- 為什麼要選擇SQL?SQL
- 在公鏈專案早期,為什麼PoW是一個更好選擇?
- 為什麼選擇.NETCore?NetCore
- 為什麼選擇centos系統CentOS
- 為什麼選擇高防DNS?DNS
- (轉)為什麼選擇機器學習策略機器學習
- 我為什麼選擇 Angular 2?Angular
- Android為什麼選擇binderAndroid
- 為什麼選擇Twitter Storm?薦ORM
- J2EE開發者選擇何種AJAX框架框架
- 巨型專案如何選擇合適的框架?框架
- SSH框架專案總結框架
- 為什麼選擇ASP.NET CoreASP.NET
- 老闆:你為什麼要選擇 Vue?Vue
- 為什麼選擇PostgreSQL而不是MySQLMySql
- 我為什麼選擇成為獨立開發者
- 為什麼建議新手選擇Ubuntu?告訴你選擇理由!Ubuntu
- 【SSH】--框架搭建錯誤及專案中問題框架
- 專案經理怎麼選擇?(轉)
- 為什麼我不選擇React、Vue.js作為SAAS網站的前端框架ReactVue.js網站前端框架
- 為什麼選擇獨立伺服器伺服器
- 為什麼選擇學習六西格瑪?
- 為什麼爬蟲要選擇住宅代理?爬蟲
- 為什麼選擇無伺服器模型?伺服器模型
- 為什麼選擇Python做爬蟲Python爬蟲
- 為什麼GitLab選擇Vue.js?GitlabVue.js
- 我為什麼選擇了 AdonisJsJS
- 如何為DMAIC選擇合適的專案AI
- 如何為專案選擇合適的專案管理軟體專案管理
- 單親媽媽生意失敗,再選一次她為什麼選擇了同城拓客專案?