要想學(xué)習(xí)好Spring、Struts、Hibernate三大框架,我們首先應(yīng)該搞清楚這三個(gè)框架分別是做什么的,在Java開(kāi)發(fā)中具有什么樣的作用。理清框架中具體的知識(shí)點(diǎn)是我們開(kāi)始Java基礎(chǔ)學(xué)習(xí)的關(guān)鍵所在,下面我就分別解讀下這三個(gè)框架,希望對(duì)大家有幫助:
1、Spring:DI/AOP
Spring對(duì)應(yīng)的關(guān)鍵詞是DI(依賴(lài)注入)與AOP(面向切面編程),可以認(rèn)為是一個(gè)以DI和AOP為核心Java Web一站式的集成(粘合)框架。
其中DI也稱(chēng)為IoC(控制發(fā)轉(zhuǎn))用于管理Java對(duì)象之間的依賴(lài)關(guān)系(一定要說(shuō)DI是IoC實(shí)現(xiàn)方式的童鞋們見(jiàn)評(píng)論區(qū)),AOP用于解耦業(yè)務(wù)代碼和公共服務(wù)代碼(如日志,安全,事務(wù)等)。DI和AOP能夠讓代碼更加簡(jiǎn)單,具有良好的松耦合特性和可測(cè)試性,極大地簡(jiǎn)化開(kāi)發(fā)。理解這兩者是使用Spring框架的基礎(chǔ)。
Spring框架對(duì)Java企業(yè)應(yīng)用開(kāi)發(fā)中的各類(lèi)通用問(wèn)題都進(jìn)行了良好的抽象,因此也能夠把應(yīng)用各個(gè)層次所涉及的特定的功能和開(kāi)發(fā)框架方便得組合到一起。Spring是一個(gè)極其優(yōu)秀的一站式的Full-Stack集成框架,因此基于Spring核心,對(duì)Java應(yīng)用開(kāi)發(fā)中的各類(lèi)通用問(wèn)題幾乎都提供了針對(duì)性的開(kāi)發(fā)框架,比如我們耳熟能詳?shù)腟pring MVC,Spring Data。
2、Struts:MVC
Struts是一個(gè)Java Web MVC開(kāi)發(fā)框架。MVC早在1978年就作為Smalltalk的一種設(shè)計(jì)模式被提出來(lái)了,引用到Web應(yīng)用中來(lái)時(shí):
模型Model用于封裝與業(yè)務(wù)邏輯相關(guān)的數(shù)據(jù)和數(shù)據(jù)處理方法
視圖View是數(shù)據(jù)的HTML展現(xiàn)
控制器Controller負(fù)責(zé)響應(yīng)請(qǐng)求,協(xié)調(diào)Model和View
Model,View和Controller的分開(kāi),是一種典型的關(guān)注點(diǎn)分離的思想,不僅使得代碼復(fù)用性和組織性更好,使得Web應(yīng)用的配置性和靈活性更好。
MVC開(kāi)發(fā)模式下,Java Web開(kāi)發(fā)會(huì)遇到URL路由、模板渲染、表單綁定/提交/驗(yàn)證、Session封裝、權(quán)限驗(yàn)證、國(guó)際化等一系列通用的問(wèn)題,而MVC框架會(huì)將這些通用問(wèn)題都封裝進(jìn)框架中,你在應(yīng)用中根據(jù)自己的場(chǎng)景進(jìn)行簡(jiǎn)單的配置和編碼即可,MVC框架就能幫你處理好一切,可以極大地簡(jiǎn)化代碼。Struts曾經(jīng)是最流行的Java Web MVC框架,現(xiàn)在常見(jiàn)的選擇是Spring MVC。
3、Hibernate:ORM
Hibernate是一個(gè)Java ORM開(kāi)發(fā)框架。ORM是Object Relation Mapping的縮寫(xiě),顧名思義,即對(duì)象關(guān)系映射。
ORM是一種以面向?qū)ο蟮姆绞絹?lái)進(jìn)行數(shù)據(jù)庫(kù)操作的技術(shù)。Web開(kāi)發(fā)中常用的語(yǔ)言,都會(huì)有對(duì)應(yīng)的ORM框架。而Hibernate就是Java開(kāi)發(fā)中一種常用ORM框架,另一個(gè)現(xiàn)在流行的ORM框架是Mybatis。
為什么需要ORM框架?
簡(jiǎn)單地理解,通過(guò)Java進(jìn)行數(shù)據(jù)庫(kù)訪問(wèn)的正常流程可以分為以下幾步:
準(zhǔn)備好SQL語(yǔ)句
調(diào)用JDBC的API傳入SQL語(yǔ)句,設(shè)置參數(shù)
解析JDBC返回的結(jié)果
這個(gè)過(guò)程實(shí)際上非常麻煩,比如:
在Java代碼中拼接SQL非常麻煩,而且易于出錯(cuò)
JDBC的代碼調(diào)用有很多重復(fù)性的代碼
從JDBC返回的結(jié)果轉(zhuǎn)換成領(lǐng)域模型的Java對(duì)象很繁瑣
而使用ORM框架,則可以讓我們用面向?qū)ο蟮姆绞絹?lái)操作數(shù)據(jù)庫(kù),比如通過(guò)一個(gè)簡(jiǎn)單的函數(shù)調(diào)用就完成上面整個(gè)流程,直接返回映射為Java對(duì)象的結(jié)果。這個(gè)流程中很大一部分工作其實(shí)可以交給ORM自動(dòng)化地幫我們執(zhí)行。
其實(shí)作為Java初學(xué)者除了簡(jiǎn)單的學(xué)習(xí)框架本身,還需要思考更多的東西,比如有框架和沒(méi)有框架到底給你帶來(lái)了什么?用Struts,要充分的理解MVC思想,用Hibernate,要明白什么是持久化,什么是OR/mapping,用Spring,你要明白什么是依賴(lài)注入,什么是AOP和IOC。就算你不能精通這些概念的東西,也要大致能夠理解,當(dāng)你明白了概念的東西,Hibernate要換成Mybaits,Struts換成SpringMVC,甚至其他的框架,都是沒(méi)有問(wèn)題的,你都能快速上手。
以上就是長(zhǎng)沙中公優(yōu)就業(yè)Java培訓(xùn)機(jī)構(gòu)小編介紹的“如何學(xué)習(xí)Java三大框架”的內(nèi)容,希望對(duì)大家有幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢(xún),有專(zhuān)業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)內(nèi)容
主流的java開(kāi)發(fā)框架有哪些?
流行的三大框架你應(yīng)該學(xué)習(xí)了
Java框架學(xué)習(xí)順序,主要講解三大框架
怎樣學(xué)習(xí)Java框架,Java架構(gòu)總結(jié)