淺談框架
對框架的認識
一、框架的作用
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 Control,IOC) 第一,資源集中管理,實現資源的可配置和易管理。第二,降低了使用資源雙方的依賴程度,也就是我們說的耦合度。(https://www.zhihu.com/question/23277575)
2. 面向切面程式設計(Aspect Oriented Programming,AOP)把業務無關程式碼分離封裝。
3.簡化且規範應用系統的開發與部署,進而提高可移植性、安全與再用價值的一套架構。
相關文章
- 淺談Spring框架Spring框架
- 淺談 Fresco 框架結構框架
- Django用來作為爬蟲框架淺談Django爬蟲框架
- 手擼ORM淺談ORM框架之Add篇ORM框架
- 手擼ORM淺談ORM框架之Update篇ORM框架
- 手擼ORM淺談ORM框架之Query篇ORM框架
- 手擼ORM淺談ORM框架之Delete篇ORM框架delete
- 淺談自動化測試框架開發框架
- 手擼ORM淺談ORM框架之基礎篇ORM框架
- 淺淺談ReduxRedux
- 淺談跨平臺框架Flutter的搭建與執行框架Flutter
- 淺淺淺談JavaScript作用域JavaScript
- 淺談跨平臺框架 Flutter 的優勢與結構框架Flutter
- SegmentFault 思否技術徵文丨淺談 Go 語言框架Go框架
- 淺談 PromisePromise
- 淺談mockMock
- 淺談ViewModelView
- 淺談PWA
- 淺談Disruptor
- 淺談反射反射
- 淺談vuexVue
- ElasticSearch淺談Elasticsearch
- 淺談NginxNginx
- 淺談promisePromise
- 淺談visibility
- 淺談flutterFlutter
- 淺談JMM
- Celery淺談
- 淺談JavaScriptJavaScript
- 淺談IHttpHandlerHTTP
- 淺談HTTPSHTTP
- 淺談SYNPROXY
- 淺談WebSocketWeb
- 淺談HTMLHTML
- ZooKeeper淺談
- ElasticJob淺談AST
- 淺談RMQMQ
- 淺談 SAP UI5 框架對一些其他前端框架比如 Vue 的支援UI框架前端Vue
- 淺談NUXT – 基於vue.js的服務端渲染框架UXVue.js服務端框架