更新時間:2021-12-03 09:56:05 來源:動力節點 瀏覽1153次
在具體的實現中,表現層可為Struts/JSF等,業務層、訪問層可為JavaBean或EJB等,資源層一般為數據庫。
宏觀上的層次就是這樣,在具體現實中,有如下幾種實現形式:
表現層使用基于MVC的框架,比如Struts或JSF
業務層使用JavaBean(就是常說的Service)
訪問層使用JavaBean(就是常說的DAO)
優點:
輕量級實現,簡單明了ü
缺點:
難以無法實現分布式應用ü
以下功能必須通過編程實現ü
事務控制²
資源管理(包括組件的創建)²
線程安全問題²
安全性²
現層依然是基于MVC的框架
訪問層采用實體Bean實現,如果可能最好采用CMP,實現起來更簡潔。此處的實體Bean可以考慮采用本地接口
業務層一分為二,服務控制器可以由會話Bean充當,用來封裝業務流程(相當于輕量級實現中的Service),也可以考慮采用本地接口;門面也可以由會話Bean充當(一般來說無狀態會話Bean足矣),作為業務層的入口,應該采用遠程接口。
優點:
以下功能可由EJB容器自動實現,或通過配置實現
事務控制
遠程訪問
線程安全
資源管理
安全性
可以進行分布式應用
因為采用了EJB,故部分特征可以由裝配人員來配置(比如事務,安全性等),不需要在軟件中硬編碼
EJB組件有更好的重用性
可利用容器提供的其他企業級的功能(比如集群,容錯,災難恢復等)
可以加入MDB(實現異步通訊)等技術
缺點:
開發難度較高
如果不恰當的使用實體Bean,會造成效率低下。如果采用CMP,則很多數據訪問的操作不能直接實現。
缺少良好的開發環境
軟件可能依賴于具體的EJB容器
EJB容器可能很貴,開發軟件也可能很貴
如果項目有需求,并有充分的時間,還可以通過在表現層和業務層的交界處加入“業務代表”(JavaBean + 服務定位器實現)來對表現層隱藏對業務層訪問的細節(JavaBean和EJB的訪問方式顯然不同),只需替換“業務代表”就可以切換輕量級和重量級兩種實現。舉例說明,一般電話上都有一個P/T開關(脈沖/音頻開關),隨著開關狀態的不同,撥號時電話機會判斷是使用脈沖撥號還是音頻撥號。
這種架構唯一的缺點就是必須寫兩套實現代碼……
訪問層通過JavaBean調用ORM框架實現(Hibernate,iBatis等),代碼簡潔,功能完備(相對于EJB 2.x而言),如果用的是Hibernate,可以忽略底層數據庫的差異,如果用的是iBatis,則方便對SQL進行優化。
業務層和訪問層依靠AOP框架(如Spring)可以在切面中實現事務,安全性等功能,同時不影響業務代碼。如果采用Spring,其中已經內置了事物切面,并可以輕易的與主流ORM框架進行整合,實現聲明式的事物管理。當然,更可以使用IoC模式降低組件間的耦合性。
優點:
可以通過AOP框架實現事物、安全性等功能,同時不影響業務代碼
ORM框架比CMP更靈活,比BMP更簡潔(相對于EJB² 2.x而言),運行效率也比較高
如果使用Spring,可以用更簡單的方式實現J2EE中比較復雜的功能
無需額外的容器
ORM和AOP框架可以找到免費的開源實現,降低項目成本(不過也有人認為采用開源項目可能綜合成本更高)
缺點:
非官方框架,缺少文檔、技術支持和業界經驗
采用技術太多,學習曲線較高,難以招到合適的程序員
某些企業級的功能輕量級框架還不能實現(或獨立實現)
測試、調試均比較復雜
以上就是關于“Java軟件開發技術架構總結”的介紹,如果大家想了解更多相關知識,不妨來關注一下動力節點的Java開發工具,里面有更多更詳細的介紹在等著大家去學習,希望對大家能夠有所幫助。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習