淺談框架

qq_1365462762發表於2017-12-26

對框架的認識

一、框架的作用

1.加快開發程式

2.程式碼重用、減少程式碼冗餘

3.規範程式設計

4.便於維護

二、各個結構框架的作用

1.Spring

優點:a.開源

b.基於IoC和AOP的構架多層j2ee系統的框架,具有較好的模組選擇性

c.資料訪問技術提供了統一的 介面

d.Spring能有效地組織你的中間層物件

e.簡化配置

缺點:

2. Hibernate

優點:a.物件/關聯式資料庫對映,使開發更物件化

b.透明持久化帶有持久化狀態的、具有業務功能的單執行緒物件,此物件生存期很短

c.事務管理方便

缺點:批量處理資料有弱勢。

處理方法:繞過Hibernate API ,直接通過 JDBC API 來做

3.Struts

優點:a.開源

b.實現MVC模式,結構清晰

c.具有豐富的Tag可以用,Struts的標籤庫

d.支援應用國際化

缺點:層面太多,不適合小應用

4. SpringMVC

優點:a.基於介面程式設計

b.靈活的model轉換

c.角色劃分清晰

三、對比

1. mybatis和hibernate之間的對比

a. hibernate比mybatis難度大

b. Hibernate更新快一點,工具多一些

c. 開發工作量,針對高階查詢mybtis需要手動寫resultMap

d. Hibernate的查詢時自動生成的,可能有多餘的欄位,浪費資源

e. Hibernate的移植行較好Mybatis依賴所使用的資料庫。

Mybatis優勢

MyBatis可以進行更為細緻的SQL優化,可以減少查詢欄位。

MyBatis容易掌握,而Hibernate門檻較高

Hibernate優勢

Hibernate的DAO層開發比MyBatis簡單,Mybatis需要維護SQL和結果對映。

Hibernate對物件的維護和快取要比MyBatis好,對增刪改查的物件的維護要方便。

Hibernate資料庫移植性很好,MyBatis的資料庫移植性不好,不同的資料庫需要寫不同SQL。

Hibernate有更好的二級快取機制,可以使用第三方快取。MyBatis本身提供的快取機制不佳。

2. Struts2和SpringMVC的比較

a. 獨享request response資料,請求資料通過引數獲取,處理結果通過ModelMap交回給框架,方法之間不共享變數,而Struts2搞的就比較亂,雖然方法之間也是獨立的,但其所有Action變數是共享的,給我們在編碼時帶來麻煩。

b. 比較耗費記憶體。

c. SpringMVC整合了Ajax,使用非常方便,只需一個註解@ResponseBody就可以實現,然後直接返回響應文字即可,而Struts2攔截器整合了Ajax,在Action中處理時一般必須安裝外掛或者自己寫程式碼整合進去,使用起來也相對不方便。

d. SpringMVC驗證支援JSR303,驗證方便。

e. SpringMVC開發效率和效能高於Struts2

 

 Struts2和SpringMVC的比較部分 參考 http://blog.csdn.net/chenleixing/article/details/44570681

 

附件:

術語

1. 控制反轉(Inversion of ControlIOC 第一,資源集中管理,實現資源的可配置和易管理。第二,降低了使用資源雙方的依賴程度,也就是我們說的耦合度。(https://www.zhihu.com/question/23277575)

2. 面向切面程式設計(Aspect Oriented ProgrammingAOP)把業務無關程式碼分離封裝。

3.簡化且規範應用系統的開發與部署,進而提高可移植性、安全與再用價值的一套架構

 

相關文章