梳理目前JavaWeb主流及興起的框架(內(nèi)涵視頻教程)

梳理目前JavaWeb主流及興起的框架(內(nèi)涵視頻教程)

深圳達(dá)內(nèi)教育      2022-05-06 21:00:01     78

梳理目前JavaWeb主流及興起的框架(內(nèi)涵視頻教程),  小編收集了當(dāng)前主流的以及正在興起的JavaWeb框架,以及對(duì)框架整合做了簡(jiǎn)單介紹?! 〕墒斓目蚣芙榻B  Hibernate框架  Hi

課程價(jià)格 請(qǐng)咨詢(xún)

上課時(shí)段: 授課校區(qū):

詳細(xì)介紹



  小編收集了當(dāng)前主流的以及正在興起的JavaWeb框架,以及對(duì)框架整合做了簡(jiǎn)單介紹。


  成熟的框架介紹


  Hibernate框架


  Hibernate是一種ORM框架,全稱(chēng)為Object-RelativeDatabase-Mapping,在Java對(duì)象與關(guān)系型數(shù)據(jù)庫(kù)之間建立某種映射,以實(shí)現(xiàn)直接存取Java對(duì)象(POJO)。ORM框架是一種不同與MVC的另一種思想框架,適用范圍也與MVC截然不同。


  使用JDBC連接來(lái)讀寫(xiě)數(shù)據(jù)庫(kù),我們最常見(jiàn)的就是打開(kāi)數(shù)據(jù)庫(kù)連接、使用復(fù)雜的SQL語(yǔ)句進(jìn)行讀寫(xiě)、關(guān)閉連接,獲得的數(shù)據(jù)又需要轉(zhuǎn)換或封裝后往外傳,這是一個(gè)非常煩瑣的過(guò)程。


  這時(shí)出現(xiàn)了Hibernate框架,它需要你創(chuàng)建一系列的持久化類(lèi),每個(gè)類(lèi)的屬性都可以簡(jiǎn)單的看做和一張數(shù)據(jù)庫(kù)表的屬性一一對(duì)應(yīng),當(dāng)然也可以實(shí)現(xiàn)關(guān)系數(shù)據(jù)庫(kù)的各種表件關(guān)聯(lián)的對(duì)應(yīng)。當(dāng)我們需要相關(guān)操作是,不用再關(guān)注數(shù)據(jù)庫(kù)表。我們不用再去一行行的查詢(xún)數(shù)據(jù)庫(kù),只需要持久化類(lèi)就可以完成增刪改查的功能。使我們的軟件開(kāi)發(fā)真正面向?qū)ο?,而不是面向混亂的代碼。我的感受是,使用Hibernate比JDBC方式減少了80%的編程量。


  Struts2框架


  Struts2以WebWork優(yōu)秀的設(shè)計(jì)思想為核心,吸收了Struts框架的部分優(yōu)點(diǎn),提供了一個(gè)更加整潔的MVC設(shè)計(jì)模式實(shí)現(xiàn)的Web應(yīng)用程序框架


  Struts2以WebWork優(yōu)秀的設(shè)計(jì)思想為核心,吸收了Struts框架的部分優(yōu)點(diǎn),提供了一個(gè)更加整潔的MVC設(shè)計(jì)模式實(shí)現(xiàn)的Web應(yīng)用程序框架。Struts2引入了幾個(gè)新的框架特性:從邏輯中分離出橫切關(guān)注點(diǎn)的攔截器、減少或者消除配置文件、貫穿整個(gè)框架的強(qiáng)大表達(dá)式語(yǔ)言、支持可變更和可重用的基于MVC模式的標(biāo)簽API,Struts2充分利用了從其它MVC框架學(xué)到的經(jīng)驗(yàn)和教訓(xùn),使得Struts2框架更加清晰靈活。


  Struts框架(目前已淘汰)


  為了解決這些問(wèn)題,出現(xiàn)了Struts框架,它是一個(gè)完美的MVC實(shí)現(xiàn),它有一個(gè)中央控制類(lèi)(一個(gè)Servlet),針對(duì)不同的業(yè)務(wù),我們需要一個(gè)Action類(lèi)負(fù)責(zé)頁(yè)面跳轉(zhuǎn)和后臺(tái)邏輯運(yùn)算,一個(gè)或幾個(gè)JSP頁(yè)面負(fù)責(zé)數(shù)據(jù)的輸入和輸出顯示,還有一個(gè)Form類(lèi)負(fù)責(zé)傳遞Action和JSP中間的數(shù)據(jù)。JSP中可以使用Struts框架提供的一組標(biāo)簽,就像使用HTML標(biāo)簽一樣簡(jiǎn)單,但是可以完成非常復(fù)雜的邏輯。從此JSP頁(yè)面中不需要出現(xiàn)一行<%%>包圍的Java代碼了??墒撬械倪\(yùn)算邏輯都放在Struts的Action里將使得Action類(lèi)復(fù)用度低和邏輯混亂,所以通常人們會(huì)把整個(gè)Web應(yīng)用程序分為三層,Struts負(fù)責(zé)顯示層,它調(diào)用業(yè)務(wù)層完成運(yùn)算邏輯,業(yè)務(wù)層再調(diào)用持久層完成數(shù)據(jù)庫(kù)的讀寫(xiě)。


  MyBatis框架


  MyBatis本是apache的一個(gè)開(kāi)源項(xiàng)目iBatis,2010年這個(gè)項(xiàng)目由apachesoftwarefoundation遷移到了googlecode,并且改名為MyBatis。2013年11月遷移到Github。


  iBATIS一詞來(lái)源于“internet”和“abatis”的組合,是一個(gè)基于Java的持久層框架。iBATIS提供的持久層框架包括SQLMaps和DataAccessObjects(DAOs)。


  Spring框架


  調(diào)用者依賴(lài)被調(diào)用者,它們之間形成了強(qiáng)耦合,如果我想在其他地方復(fù)用某個(gè)類(lèi),則這個(gè)類(lèi)依賴(lài)的其他類(lèi)也需要包含。程序就變得很混亂,每個(gè)類(lèi)互相依賴(lài)互相調(diào)用,復(fù)用度極低。如果一個(gè)類(lèi)做了修改,則依賴(lài)它的很多類(lèi)都會(huì)受到牽連。為此,出現(xiàn)Spring框架。


  Spring的作用就是完全解耦類(lèi)之間的依賴(lài)關(guān)系,一個(gè)類(lèi)如果要依賴(lài)什么,那就是一個(gè)接口。至于如何實(shí)現(xiàn)這個(gè)接口,這都不重要了。只要拿到一個(gè)實(shí)現(xiàn)了這個(gè)接口的類(lèi),就可以輕松的通過(guò)xml配置文件把實(shí)現(xiàn)類(lèi)注射到調(diào)用接口的那個(gè)類(lèi)里。所有類(lèi)之間的這種依賴(lài)關(guān)系就完全通過(guò)配置文件的方式替代了。所以Spring框架最核心的就是所謂的依賴(lài)注射和控制反轉(zhuǎn)。


  springMVC框架


  SpringMVC屬于SpringframeWork的后續(xù)產(chǎn)品,已經(jīng)融合在SpringWebFlow里面。Spring框架提供了構(gòu)建Web應(yīng)用程序的全功能MVC模塊。使用Spring可插入的MVC架構(gòu),從而在使用Spring進(jìn)行WEB開(kāi)發(fā)時(shí),可以選擇使用Spring的SpringMVC框架或集成其他MVC開(kāi)發(fā)框架,如Struts1,Struts2等。


  它是一個(gè)典型的教科書(shū)式的mvc構(gòu)架,而不像struts等都是變種或者不是完全基于mvc系統(tǒng)的框架,對(duì)于初學(xué)者或者想了解mvc的人來(lái)說(shuō)我覺(jué)得spring是最好的,它的實(shí)現(xiàn)就是教科書(shū)!第二它和tapestry一樣是一個(gè)純正的servlet系統(tǒng),這也是它和tapestry相比struts所具有的優(yōu)勢(shì)。而且框架本身有代碼,看起來(lái)容易理解。DataAccessObjects(DAOs)。


  正在興起的框架


  Jersey框架


  JerseyRESTful框架是開(kāi)源的RESTful框架,實(shí)現(xiàn)了JAX-RS(JSR311&JSR339)規(guī)范。它擴(kuò)展了JAX-RS參考實(shí)現(xiàn),提供了更多的特性和工具,可以進(jìn)一步地簡(jiǎn)化RESTfulservice和client開(kāi)發(fā)。盡管相對(duì)年輕,它已經(jīng)是一個(gè)產(chǎn)品級(jí)的RESTfulservice和client框架。與Struts類(lèi)似,它同樣可以和hibernate,spring框架整合。


  由于Struts2+hibernate+spring整合在市場(chǎng)的占有率太高,所以很少一部分人去關(guān)注Jersey。所以網(wǎng)上有關(guān)于Jersey的介紹很少。但是它確實(shí)是一個(gè)非常不錯(cuò)的框架。對(duì)于請(qǐng)求式服務(wù),對(duì)于GET,DELETE請(qǐng)求,你甚至只需要給出一個(gè)URI即可完成操作。


  舉個(gè)簡(jiǎn)單的例子:如果你想獲得服務(wù)器數(shù)據(jù)庫(kù)中的所有數(shù)據(jù);那么你可以在瀏覽器或者利用Ajax的GET方法,將路徑設(shè)置好;例如:localhost:8080/Student(項(xiàng)目名稱(chēng))/studentinfo(項(xiàng)目服務(wù)總體前綴)/student(處理student對(duì)象的簽注)/getStudentInfo(最后前綴)。這樣就可以獲取所有學(xué)生信息。你可以選擇GET獲取的數(shù)據(jù)的返回類(lèi)型:JSON,XML,TEXT_HTML(String)..獲取之后,你可以通過(guò)JS將這些數(shù)據(jù)塞到html或者jsp頁(yè)面上。


  springboot框架


  springboot框架,被稱(chēng)作一棧式解決方案。比較輕量,也是當(dāng)前微服務(wù)下的趨勢(shì);springboot本身就是構(gòu)建與spring之上,各種思想和特性無(wú)需多說(shuō),去掉了spring繁瑣的配置,簡(jiǎn)化了原有spring開(kāi)發(fā)的流程,提供了各種實(shí)用的特性如metric,actuctor等等;最重要的是springboot附帶了整個(gè)springcloud生態(tài)。兩個(gè)框架對(duì)你解決大,中,小項(xiàng)目都沒(méi)任何問(wèn)題


  play框架


  play可能更加偏向于scala點(diǎn),本身輕量性能高,隨著逐步的優(yōu)化易用性以及擴(kuò)展性都變得越來(lái)越好;


  Vue.js框架


  嚴(yán)格來(lái)說(shuō)這個(gè)應(yīng)該不屬于框架,從組建構(gòu)造上來(lái)講是和reactjs類(lèi)似的構(gòu)造UI組件的。從整體邏輯來(lái)講,他要解決的是MVVM的VM這個(gè)部分,就是如何把應(yīng)用程序的model和view聯(lián)系起來(lái)的這個(gè)VM(viewmodel)部分。眾所周知,MVC這個(gè)designpattern爭(zhēng)議大的就是這個(gè)C的部分,所以才有各種MV*的方案提出。他使用起來(lái)確實(shí)比reactjs簡(jiǎn)單方便多了。代碼也清晰。借鑒了angularjs的declarative的特點(diǎn)。另外文檔,例子做的都很漂亮。上手比較快,這些都是很好的優(yōu)點(diǎn)。


  jfinal框架


  JFinal是基于Java語(yǔ)言的極速web開(kāi)發(fā)框架,其核心設(shè)計(jì)目標(biāo)是開(kāi)發(fā)迅速、代碼量少、學(xué)習(xí)簡(jiǎn)單、功能強(qiáng)大、輕量級(jí)、易擴(kuò)展、Restful。在擁有Java語(yǔ)言所有優(yōu)勢(shì)的同時(shí)再擁有ruby、python等動(dòng)態(tài)語(yǔ)言的開(kāi)發(fā)效率。


  框架整合


  最初是Struts+Spring+Hibernate。


  后來(lái)演變?yōu)镾truts2+Spring+Hibernate。


  后來(lái)隨著Spring的強(qiáng)大以及Struts漏洞上的等等問(wèn)題,演變成為了Spring+SpringMVC+Hibernate/Mybatis互聯(lián)網(wǎng)這塊比較常見(jiàn)的是Mybatis。


  最近也慢慢演變?yōu)榱薙pringboot+Mybatis。


  以上就是深圳達(dá)內(nèi)教育Java培訓(xùn)機(jī)構(gòu)小編介紹的“梳理目前JavaWeb主流及興起的框架(內(nèi)涵視頻教程)”的內(nèi)容,希望對(duì)大家有幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢(xún),有專(zhuān)業(yè)老師隨時(shí)為你服務(wù)。


  視頻相關(guān)


  Spring視頻教程:http://www.bjpowernode.com/v38/


  MyBatis視頻教程:http://www.bjpowernode.com/v41/


  Struts2視頻教程:http://www.bjpowernode.com/v58/


  Hibernate視頻教程:http://www.bjpowernode.com/v39/


培訓(xùn)啦提醒您:交易時(shí)請(qǐng)核實(shí)對(duì)方資質(zhì),對(duì)于過(guò)大宣傳或承諾需謹(jǐn)慎!任何要求預(yù)付定金、匯款等方式均存在風(fēng)險(xiǎn),謹(jǐn)防上當(dāng)。