更新時(shí)間:2019-09-25 09:50:48 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2473次
Java框架一直以來(lái)都是面試必備的知識(shí)點(diǎn),而掌握J(rèn)ava框架,不管在成熟的大公司,快速發(fā)展的公司,還是創(chuàng)業(yè)階段的公司,都能對(duì)當(dāng)前正在開發(fā)中的系統(tǒng)有整體的認(rèn)知,從而更好的熟悉和學(xué)習(xí)技術(shù),這篇文章胖達(dá)就打算給大家介紹幾款現(xiàn)階段流行的框架組合,不管是在傳統(tǒng)企業(yè)開發(fā)還是在互聯(lián)網(wǎng)開發(fā)領(lǐng)域,這幾種框架應(yīng)該都是比較常用的。
三層架構(gòu)
說(shuō)到框架首先需要明確的是,在Web開發(fā)領(lǐng)域一般會(huì)將架構(gòu)分為三個(gè)部分:表示層、持久層、業(yè)務(wù)層,之所以將整體架構(gòu)分為三個(gè)層面,主要目的是讓整個(gè)系統(tǒng)更具有條理性,通過(guò)分配任務(wù)的方式進(jìn)行系統(tǒng)的解耦,讓每一層只關(guān)心自己內(nèi)部的事情,只知道下層的存在,不知道上層的存在。達(dá)到局部改變而不影響全局的目的,就比如餐館中有服務(wù)員、廚師、收銀員一樣,各司其職,讓系統(tǒng)有條不紊的運(yùn)行下去。
下面就簡(jiǎn)單介紹一下三層架構(gòu):
1.表示層
表示層其實(shí)就是用戶能夠看到的界面顯示層,但是它的職責(zé)并不僅僅是顯示界面那么簡(jiǎn)單,而是需要完成三件事情:
從界面中取得數(shù)據(jù)跟后臺(tái)服務(wù)器交互
跟后臺(tái)交互后進(jìn)行數(shù)據(jù)綁定
將綁定的數(shù)據(jù)呈現(xiàn)在頁(yè)面中
一般來(lái)說(shuō),這一層的設(shè)計(jì)會(huì)采用MVC的模式,M稱為模型也就是實(shí)體類,用于數(shù)據(jù)的封裝和數(shù)據(jù)的傳輸;V也就是頁(yè)面組件,用于數(shù)據(jù)的展示;C為控制也就是流程事件,用于流程的控制。
2.業(yè)務(wù)層
這一層的功能主要是實(shí)現(xiàn)一些具體問(wèn)題的操作,因?yàn)樗潜硎緦雍统志脤又g溝通的橋梁,主要負(fù)責(zé)數(shù)據(jù)的傳遞和處理。
在日常的代碼開發(fā)中一般對(duì)應(yīng)著邏輯Service層,對(duì)于一些復(fù)雜的邏輯判斷和涉及到數(shù)據(jù)庫(kù)的數(shù)據(jù)驗(yàn)證都需要在這一層做出處理,同時(shí)根據(jù)傳入的值返回用戶想得到的值,或者處理相關(guān)的操作。
3.持久層
也稱為數(shù)據(jù)訪問(wèn)層,顧名思義,這一層其實(shí)就是跟數(shù)據(jù)庫(kù)直接打交道的層面,通過(guò)連接數(shù)據(jù)庫(kù),根據(jù)傳入的值對(duì)數(shù)據(jù)庫(kù)進(jìn)行增刪改查。
框架組合
針對(duì)上面架構(gòu)的每一個(gè)層面,目前Web開發(fā)領(lǐng)域內(nèi)都有一些優(yōu)秀的框架,例如表示層有Structs2、SpringMVC等,持久層有Hibernate、Mybatis等,還有業(yè)務(wù)層有Spring框架,但是嚴(yán)格來(lái)說(shuō),Spring是一個(gè)整合框架,業(yè)務(wù)層面在每一個(gè)公司每一個(gè)項(xiàng)目都會(huì)根據(jù)自己的需求做不同的處理。在項(xiàng)目的開發(fā)中,有這樣幾種使用非常廣泛的框架組合:
1.SSH框架組合
SSH框架組合主要包括Struts、Spring、Hibernate三大框架,用Struts作為系統(tǒng)的整體基礎(chǔ)架構(gòu),負(fù)責(zé)MVC的分離,在Struts框架的模型部分,控制業(yè)務(wù)跳轉(zhuǎn),利用Hibernate框架對(duì)持久層提供支持,同時(shí)用Spring來(lái)管理Struts和Hibernate,框架具體解釋如下:
Struts框架
Struts框架是一個(gè)基于MVC設(shè)計(jì)模式的Web應(yīng)用框架,它本質(zhì)上相當(dāng)于一個(gè)Servlet,在MVC設(shè)計(jì)模式中,Struts2作為控制器(Controller)來(lái)建立模型與視圖的數(shù)據(jù)交互。它包含Struts1和Struts2兩個(gè)版本,兩者的相差其實(shí)還是挺大的,Struts2并不是對(duì)Struts1的更新,而是充分發(fā)揮了Struts1和WebWork這兩種技術(shù)的優(yōu)勢(shì),它拋棄了原來(lái)Struts1的缺點(diǎn),使得Web開發(fā)變得更加容易。
Spring框架
學(xué)習(xí)基礎(chǔ)的時(shí)候大家應(yīng)該都知道,最傳統(tǒng)的JavaWeb應(yīng)用程序是采用JSP、Servlet、Javabean來(lái)實(shí)現(xiàn)的,這種模式實(shí)現(xiàn)了最基本的MVC分層,使得程序結(jié)構(gòu)有負(fù)責(zé)前臺(tái)展示的JSP、負(fù)責(zé)流程邏輯控制的Servlet以及負(fù)責(zé)數(shù)據(jù)封裝的Javabean,但是這種結(jié)構(gòu)存在問(wèn)題如JSP頁(yè)面中需要使用符號(hào)嵌入很多的Java代碼,造成頁(yè)面結(jié)構(gòu)混亂,Servlet和Javabean負(fù)責(zé)了大量的跳轉(zhuǎn)和運(yùn)算工作,耦合緊密,程序復(fù)用度低等。
Spring框架的出現(xiàn)就解決了這個(gè)問(wèn)題,通過(guò)AOP和IOC兩大特性的加持,把所有類之間的這種依賴關(guān)系完全通過(guò)配置文件的方式替代了,同時(shí)將實(shí)體bean很好的管理到了容器中,使得耦合性大大降低,復(fù)用性大大提高。
Hibernate框架
傳統(tǒng)的持久層框架都是采用JavaJDBC的連接方式進(jìn)行數(shù)據(jù)庫(kù)的訪問(wèn)和操作,需要人為的編寫大量的SQL或者代碼,同時(shí)還需要將獲得的數(shù)據(jù)進(jìn)行轉(zhuǎn)換或封裝后往外傳,其實(shí)對(duì)于大項(xiàng)目而言這是一個(gè)非常煩瑣的過(guò)程。
Hibernate框架是一個(gè)半自動(dòng)化的持久層框架,可以減少大量的SQL、代碼編寫工作,省掉很大部分的工作量,在這個(gè)框架中,當(dāng)我們需要相關(guān)操作時(shí),不用再關(guān)注數(shù)據(jù)庫(kù)表也不用再去一行行的查詢數(shù)據(jù)庫(kù),只需要通過(guò)持久化一個(gè)類的方式就可以完成增刪改查的功能,因?yàn)榭蚣艿膬?nèi)部已經(jīng)實(shí)現(xiàn)了很多對(duì)數(shù)據(jù)庫(kù)的操作方法,我們只需要調(diào)用即可,做的最多的工作都在持久化類上。
SSM框架組合
另外一個(gè)比較流行的框架組合是SSM框架,主要包括SpringMVC、Spring、Mybatis三大框架,用SpringMVC作為整體基礎(chǔ)框架,分離MVC層級(jí),Mybatis作為跟數(shù)據(jù)庫(kù)交互的持久層框架,負(fù)責(zé)數(shù)據(jù)的訪問(wèn)和操作,而Spring依然作為其余兩大框架的橋梁,進(jìn)行數(shù)據(jù)的傳遞和事務(wù)等邏輯處理,下面Spring不再贅述,關(guān)于SpringMVC、Mybatis詳情如下所述:
SpringMVC框架
SpringMVC和Struts2都屬于表現(xiàn)層的框架,但它是Spring框架的一部分,這讓SpringMVC有了先天的優(yōu)勢(shì),它延續(xù)了Spring在配置上簡(jiǎn)單省心的特點(diǎn),而且因?yàn)榕cSpring無(wú)縫對(duì)接,這讓安全性有了很大的保障。同時(shí)SpringMVC解決了一個(gè)很大的問(wèn)題就是如何降低處理業(yè)務(wù)數(shù)據(jù)的對(duì)象和顯示業(yè)務(wù)數(shù)據(jù)的視圖耦合性,這個(gè)問(wèn)題的解決讓開發(fā)變得更加的簡(jiǎn)單。
Mybatis框架
MyBatis是一款優(yōu)秀的持久層框架,它支持定制化SQL、存儲(chǔ)過(guò)程以及高級(jí)映射,避免了幾乎所有的JDBC代碼和手動(dòng)設(shè)置參數(shù)以及獲取結(jié)果集的繁雜。它可以使用簡(jiǎn)單的XML或注解來(lái)配置和映射原生信息,將接口和Java對(duì)象映射成數(shù)據(jù)庫(kù)中的記錄。
Hibernate固然優(yōu)秀,但是跟Mybatis相比,它的封裝太過(guò)于死板,對(duì)一些復(fù)雜的sql,開發(fā)人員更喜歡手動(dòng)的編寫一些代碼,而不是通過(guò)特定的HQL語(yǔ)言去編寫,這樣會(huì)間接的增加工作量,而且Mybatis更好上手,學(xué)習(xí)成本比Hibernate要低很多,但是有一點(diǎn)不得不承認(rèn),Hibernate的開源社區(qū)人數(shù)要碾壓Mybatis的,畢竟國(guó)外很多大佬還是喜歡用Hibernate的,后期可以詳細(xì)探索探索。
以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)小編介紹的“簡(jiǎn)單介紹幾種Java后臺(tái)開發(fā)常用框架組合”的內(nèi)容,希望對(duì)大家有幫助,更多java最新資訊請(qǐng)繼續(xù)關(guān)注動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)官網(wǎng),每天會(huì)有精彩內(nèi)容分享與你。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743