更新時間:2019-10-31 09:34:48 來源:動力節(jié)點 瀏覽2899次
小編收集了當(dāng)前主流的以及正在興起的JavaWeb框架,以及對框架整合做了簡單介紹。
成熟的框架介紹
Hibernate框架
Hibernate是一種ORM框架,全稱為Object-RelativeDatabase-Mapping,在Java對象與關(guān)系型數(shù)據(jù)庫之間建立某種映射,以實現(xiàn)直接存取Java對象(POJO)。ORM框架是一種不同與MVC的另一種思想框架,適用范圍也與MVC截然不同。
使用JDBC連接來讀寫數(shù)據(jù)庫,我們最常見的就是打開數(shù)據(jù)庫連接、使用復(fù)雜的SQL語句進行讀寫、關(guān)閉連接,獲得的數(shù)據(jù)又需要轉(zhuǎn)換或封裝后往外傳,這是一個非常煩瑣的過程。
這時出現(xiàn)了Hibernate框架,它需要你創(chuàng)建一系列的持久化類,每個類的屬性都可以簡單的看做和一張數(shù)據(jù)庫表的屬性一一對應(yīng),當(dāng)然也可以實現(xiàn)關(guān)系數(shù)據(jù)庫的各種表件關(guān)聯(lián)的對應(yīng)。當(dāng)我們需要相關(guān)操作是,不用再關(guān)注數(shù)據(jù)庫表。我們不用再去一行行的查詢數(shù)據(jù)庫,只需要持久化類就可以完成增刪改查的功能。使我們的軟件開發(fā)真正面向?qū)ο?,而不是面向混亂的代碼。我的感受是,使用Hibernate比JDBC方式減少了80%的編程量。
Struts2框架
Struts2以WebWork優(yōu)秀的設(shè)計思想為核心,吸收了Struts框架的部分優(yōu)點,提供了一個更加整潔的MVC設(shè)計模式實現(xiàn)的Web應(yīng)用程序框架
Struts2以WebWork優(yōu)秀的設(shè)計思想為核心,吸收了Struts框架的部分優(yōu)點,提供了一個更加整潔的MVC設(shè)計模式實現(xiàn)的Web應(yīng)用程序框架。Struts2引入了幾個新的框架特性:從邏輯中分離出橫切關(guān)注點的攔截器、減少或者消除配置文件、貫穿整個框架的強大表達式語言、支持可變更和可重用的基于MVC模式的標簽API,Struts2充分利用了從其它MVC框架學(xué)到的經(jīng)驗和教訓(xùn),使得Struts2框架更加清晰靈活。
Struts框架(目前已淘汰)
為了解決這些問題,出現(xiàn)了Struts框架,它是一個完美的MVC實現(xiàn),它有一個中央控制類(一個Servlet),針對不同的業(yè)務(wù),我們需要一個Action類負責(zé)頁面跳轉(zhuǎn)和后臺邏輯運算,一個或幾個JSP頁面負責(zé)數(shù)據(jù)的輸入和輸出顯示,還有一個Form類負責(zé)傳遞Action和JSP中間的數(shù)據(jù)。JSP中可以使用Struts框架提供的一組標簽,就像使用HTML標簽一樣簡單,但是可以完成非常復(fù)雜的邏輯。從此JSP頁面中不需要出現(xiàn)一行<%%>包圍的Java代碼了??墒撬械倪\算邏輯都放在Struts的Action里將使得Action類復(fù)用度低和邏輯混亂,所以通常人們會把整個Web應(yīng)用程序分為三層,Struts負責(zé)顯示層,它調(diào)用業(yè)務(wù)層完成運算邏輯,業(yè)務(wù)層再調(diào)用持久層完成數(shù)據(jù)庫的讀寫。
MyBatis框架
MyBatis本是apache的一個開源項目iBatis,2010年這個項目由apachesoftwarefoundation遷移到了googlecode,并且改名為MyBatis。2013年11月遷移到Github。
iBATIS一詞來源于“internet”和“abatis”的組合,是一個基于Java的持久層框架。iBATIS提供的持久層框架包括SQLMaps和DataAccessObjects(DAOs)。
Spring框架
調(diào)用者依賴被調(diào)用者,它們之間形成了強耦合,如果我想在其他地方復(fù)用某個類,則這個類依賴的其他類也需要包含。程序就變得很混亂,每個類互相依賴互相調(diào)用,復(fù)用度極低。如果一個類做了修改,則依賴它的很多類都會受到牽連。為此,出現(xiàn)Spring框架。
Spring的作用就是完全解耦類之間的依賴關(guān)系,一個類如果要依賴什么,那就是一個接口。至于如何實現(xiàn)這個接口,這都不重要了。只要拿到一個實現(xiàn)了這個接口的類,就可以輕松的通過xml配置文件把實現(xiàn)類注射到調(diào)用接口的那個類里。所有類之間的這種依賴關(guān)系就完全通過配置文件的方式替代了。所以Spring框架最核心的就是所謂的依賴注射和控制反轉(zhuǎn)。
springMVC框架
SpringMVC屬于SpringFrameWork的后續(xù)產(chǎn)品,已經(jīng)融合在SpringWebFlow里面。Spring框架提供了構(gòu)建Web應(yīng)用程序的全功能MVC模塊。使用Spring可插入的MVC架構(gòu),從而在使用Spring進行WEB開發(fā)時,可以選擇使用Spring的SpringMVC框架或集成其他MVC開發(fā)框架,如Struts1,Struts2等。
它是一個典型的教科書式的mvc構(gòu)架,而不像struts等都是變種或者不是完全基于mvc系統(tǒng)的框架,對于初學(xué)者或者想了解mvc的人來說我覺得spring是最好的,它的實現(xiàn)就是教科書!第二它和tapestry一樣是一個純正的servlet系統(tǒng),這也是它和tapestry相比struts所具有的優(yōu)勢。而且框架本身有代碼,看起來容易理解。DataAccessObjects(DAOs)。
正在興起的框架
Jersey框架
JerseyRESTful框架是開源的RESTful框架,實現(xiàn)了JAX-RS(JSR311&JSR339)規(guī)范。它擴展了JAX-RS參考實現(xiàn),提供了更多的特性和工具,可以進一步地簡化RESTfulservice和client開發(fā)。盡管相對年輕,它已經(jīng)是一個產(chǎn)品級的RESTfulservice和client框架。與Struts類似,它同樣可以和hibernate,spring框架整合。
由于Struts2+hibernate+spring整合在市場的占有率太高,所以很少一部分人去關(guān)注Jersey。所以網(wǎng)上有關(guān)于Jersey的介紹很少。但是它確實是一個非常不錯的框架。對于請求式服務(wù),對于GET,DELETE請求,你甚至只需要給出一個URI即可完成操作。
舉個簡單的例子:如果你想獲得服務(wù)器數(shù)據(jù)庫中的所有數(shù)據(jù);那么你可以在瀏覽器或者利用Ajax的GET方法,將路徑設(shè)置好;例如:localhost:8080/Student(項目名稱)/studentinfo(項目服務(wù)總體前綴)/student(處理student對象的簽注)/getStudentInfo(最后前綴)。這樣就可以獲取所有學(xué)生信息。你可以選擇GET獲取的數(shù)據(jù)的返回類型:JSON,XML,TEXT_HTML(String)..獲取之后,你可以通過JS將這些數(shù)據(jù)塞到html或者jsp頁面上。
springboot框架
springboot框架,被稱作一棧式解決方案。比較輕量,也是當(dāng)前微服務(wù)下的趨勢;springboot本身就是構(gòu)建與spring之上,各種思想和特性無需多說,去掉了spring繁瑣的配置,簡化了原有spring開發(fā)的流程,提供了各種實用的特性如metric,actuctor等等;最重要的是springboot附帶了整個springcloud生態(tài)。兩個框架對你解決大,中,小項目都沒任何問題
play框架
play可能更加偏向于scala點,本身輕量性能高,隨著逐步的優(yōu)化易用性以及擴展性都變得越來越好;
Vue.js框架
嚴格來說這個應(yīng)該不屬于框架,從組建構(gòu)造上來講是和reactjs類似的構(gòu)造UI組件的。從整體邏輯來講,他要解決的是MVVM的VM這個部分,就是如何把應(yīng)用程序的model和view聯(lián)系起來的這個VM(viewmodel)部分。眾所周知,MVC這個designpattern爭議大的就是這個C的部分,所以才有各種MV*的方案提出。他使用起來確實比reactjs簡單方便多了。代碼也清晰。借鑒了angularjs的declarative的特點。另外文檔,例子做的都很漂亮。上手比較快,這些都是很好的優(yōu)點。
jfinal框架
JFinal是基于Java語言的極速web開發(fā)框架,其核心設(shè)計目標是開發(fā)迅速、代碼量少、學(xué)習(xí)簡單、功能強大、輕量級、易擴展、Restful。在擁有Java語言所有優(yōu)勢的同時再擁有ruby、python等動態(tài)語言的開發(fā)效率。
框架整合
最初是Struts+Spring+Hibernate。
后來演變?yōu)镾truts2+Spring+Hibernate。
后來隨著Spring的強大以及Struts漏洞上的等等問題,演變成為了Spring+SpringMVC+Hibernate/Mybatis互聯(lián)網(wǎng)這塊比較常見的是Mybatis。
最近也慢慢演變?yōu)榱薙pringboot+Mybatis。
以上就是動力節(jié)點Java培訓(xùn)機構(gòu)小編介紹的“梳理目前JavaWeb主流及興起的框架(內(nèi)涵視頻教程)”的內(nèi)容,希望對大家有幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。
視頻相關(guān)
Spring視頻教程:http://www.soulsinkind.com/v38/
MyBatis視頻教程:http://www.soulsinkind.com/v41/
Struts2視頻教程:http://www.soulsinkind.com/v58/
Hibernate視頻教程:http://www.soulsinkind.com/v39/
相關(guān)閱讀
Java實驗班
0基礎(chǔ) 0學(xué)費 15天面授
Java就業(yè)班
有基礎(chǔ) 直達就業(yè)
Java夜校直播班
業(yè)余時間 高薪轉(zhuǎn)行
Java在職加薪班
工作1~3年,加薪神器
Java架構(gòu)師班
工作3~5年,晉升架構(gòu)
提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)