知識(shí)
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營(yíng)銷的便利,運(yùn)營(yíng)的高效,讓網(wǎng)站成為營(yíng)銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!
您當(dāng)前位置>首頁(yè) » 新聞資訊 » 網(wǎng)站建設(shè) >
Java Web目前主流的框架以及正在興起的框架
發(fā)表時(shí)間:2017-12-18
發(fā)布人:葵宇科技
瀏覽次數(shù):39
Java Web目前主流的框架以及正在興起的框架收集
我收集了當(dāng)前主流的以及正在興起的JavaWeb框架,以及對(duì)框架整合做了簡(jiǎn)單介紹?!玖私馐裁词强蚣堋?/p>
成熟的框架介紹
Hibernate 框架
Hibernate 是一種ORM框架,全稱為 Object-Relative Database-Mapping,在Java對(duì)象與關(guān)系型數(shù)據(jù)庫(kù)之間建立某種映射,以實(shí)現(xiàn)直接存取Java對(duì)象(POJO)。ORM框架是一種不同與MVC的另一種思想框架,適用范圍也與MVC截然不同。
使用JDBC連接來(lái)讀寫數(shù)據(jù)庫(kù),我們最常見的就是打開數(shù)據(jù)庫(kù)連接、使用復(fù)雜的SQL語(yǔ)句進(jìn)行讀寫、關(guān)閉連接,獲得的數(shù)據(jù)又需要轉(zhuǎn)換或封裝后往外傳,這是一個(gè)非常煩瑣的過(guò)程。
這時(shí)出現(xiàn)了Hibernate框架,它需要你創(chuàng)建一系列的持久化類,每個(gè)類的屬性都可以簡(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ù)表。我們不用再去一行行的查詢數(shù)據(jù)庫(kù),只需要持久化類就可以完成增刪改查的功能。使我們的軟件開發(fā)真正面向?qū)ο?#xff0c;而不是面向混亂的代碼。我的感受是,使用Hibernate比JDBC方式減少了80%的編程量。
Struts2框架
本詞條缺少信息欄、名片圖,補(bǔ)充相關(guān)內(nèi)容使詞條更完整,還能快速升級(jí),趕緊來(lái)編輯吧!
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 框架(目前已淘汰)
為了解決這些問題,出現(xiàn)了Struts框架,它是一個(gè)完美的MVC實(shí)現(xiàn),它有一個(gè)中央控制類(一個(gè)Servlet),針對(duì)不同的業(yè)務(wù),我們需要一個(gè)Action類負(fù)責(zé)頁(yè)面跳轉(zhuǎn)和后臺(tái)邏輯運(yùn)算,一個(gè)或幾個(gè)JSP頁(yè)面負(fù)責(zé)數(shù)據(jù)的輸入和輸出顯示,還有一個(gè)Form類負(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類復(fù)用度低和邏輯混亂,所以通常人們會(huì)把整個(gè)Web應(yīng)用程序分為三層,Struts負(fù)責(zé)顯示層,它調(diào)用業(yè)務(wù)層完成運(yùn)算邏輯,業(yè)務(wù)層再調(diào)用持久層完成數(shù)據(jù)庫(kù)的讀寫。
MyBatis 框架
MyBatis 本是apache的一個(gè)開源項(xiàng)目iBatis, 2010年這個(gè)項(xiàng)目由apache software foundation 遷移到了google code,并且改名為MyBatis 。2013年11月遷移到Github。
iBATIS一詞來(lái)源于“internet”和“abatis”的組合,是一個(gè)基于Java的持久層框架。iBATIS提供的持久層框架包括SQL Maps和Data Access Objects(DAOs)。
Spring 框架
調(diào)用者依賴被調(diào)用者,它們之間形成了強(qiáng)耦合,如果我想在其他地方復(fù)用某個(gè)類,則這個(gè)類依賴的其他類也需要包含。程序就變得很混亂,每個(gè)類互相依賴互相調(diào)用,復(fù)用度極低。如果一個(gè)類做了修改,則依賴它的很多類都會(huì)受到牽連。為此,出現(xiàn)Spring框架。
Spring的作用就是完全解耦類之間的依賴關(guān)系,一個(gè)類如果要依賴什么,那就是一個(gè)接口。至于如何實(shí)現(xiàn)這個(gè)接口,這都不重要了。只要拿到一個(gè)實(shí)現(xiàn)了這個(gè)接口的類,就可以輕松的通過(guò)xml配置文件把實(shí)現(xiàn)類注射到調(diào)用接口的那個(gè)類里。所有類之間的這種依賴關(guān)系就完全通過(guò)配置文件的方式替代了。所以Spring框架最核心的就是所謂的依賴注射和控制反轉(zhuǎn)。
spring MVC 框架
Spring MVC屬于SpringFrameWork的后續(xù)產(chǎn)品,已經(jīng)融合在Spring Web Flow里面。Spring 框架提供了構(gòu)建 Web 應(yīng)用程序的全功能 MVC 模塊。使用 Spring 可插入的 MVC 架構(gòu),從而在使用Spring進(jìn)行WEB開發(fā)時(shí),可以選擇使用Spring的SpringMVC框架或集成其他MVC開發(fā)框架,如Struts1,Struts2等。
它是一個(gè)典型的教科書式的mvc構(gòu)架,而不像struts等都是變種或者不是完全基于mvc系統(tǒng)的框架,對(duì)于初學(xué)者或者想了解mvc的人來(lái)說(shuō)我覺得 spring是最好的,它的實(shí)現(xiàn)就是教科書!第二它和tapestry一樣是一個(gè)純正的servlet系統(tǒng),這也是它和tapestry相比 struts所具有的優(yōu)勢(shì)。而且框架本身有代碼,看起來(lái)容易理解。Data Access Objects(DAOs)。
正在興起的框架
Jersey 框架
Jersey RESTful 框架是開源的RESTful框架, 實(shí)現(xiàn)了JAX-RS (JSR 311 & JSR 339) 規(guī)范。它擴(kuò)展了JAX-RS 參考實(shí)現(xiàn), 提供了更多的特性和工具, 可以進(jìn)一步地簡(jiǎn)化 RESTful service 和 client 開發(fā)。盡管相對(duì)年輕,它已經(jīng)是一個(gè)產(chǎn)品級(jí)的 RESTful service 和 client 框架。與Struts類似,它同樣可以和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)目名稱)/studentinfo(項(xiàng)目服務(wù)總體前綴)/student(處理student對(duì)象的簽注)/getStudentInfo(最后前綴)。這樣就可以獲取所有學(xué)生信息。你可以選擇GET獲取的數(shù)據(jù)的返回類型:JSON,XML,TEXT_HTML(String)..獲取之后,你可以通過(guò)JS將這些數(shù)據(jù)塞到html或者jsp頁(yè)面上。
springboot 框架
springboot 框架,被稱作一棧式解決方案。比較輕量,也是當(dāng)前微服務(wù)下的趨勢(shì);springboot本身就是構(gòu)建與spring之上,各種思想和特性無(wú)需多說(shuō),去掉了spring繁瑣的配置,簡(jiǎn)化了原有spring開發(fā)的流程,提供了各種實(shí)用的特性如metric,actuctor等等;最重要的是springboot附帶了整個(gè)springcloud生態(tài)。兩個(gè)框架對(duì)你解決大,中,小項(xiàng)目都沒任何問題
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 類似的構(gòu)造UI組件的。 從整體邏輯來(lái)講, 他要解決的是MVVM的VM這個(gè)部分, 就是如何把應(yīng)用程序的model 和 view 聯(lián)系起來(lái)的這個(gè)VM(view model) 部分。眾所周知, MVC這個(gè)design pattern爭(zhēng)議大的就是這個(gè)C的部分, 所以才有各種MV* 的方案提出。 他使用起來(lái)確實(shí)比reactjs 簡(jiǎn)單方便多了。 代碼也清晰。借鑒了angularjs的declarative的特點(diǎn)。 另外文檔, 例子做的都很漂亮。 上手比較快, 這些都是很好的優(yōu)點(diǎn)。
jfinal 框架
JFinal 是基于Java 語(yǔ)言的極速 web 開發(fā)框架,其核心設(shè)計(jì)目標(biāo)是開發(fā)迅速、代碼量少、學(xué)習(xí)簡(jiǎn)單、功能強(qiáng)大、輕量級(jí)、易擴(kuò)展、Restful。在擁有Java語(yǔ)言所有優(yōu)勢(shì)的同時(shí)再擁有ruby、python等動(dòng)態(tài)語(yǔ)言的開發(fā)效率。
框架整合
最初是Struts+ Spring + Hibernate。
后來(lái)演變?yōu)镾truts2 + Spring + Hibernate。
后來(lái)隨著Spring的強(qiáng)大以及Struts漏洞上的等等問題,演變成為了Spring + SpringMVC + Hibernate/Mybatis 互聯(lián)網(wǎng)這塊比較常見的是Mybatis。
最近也慢慢演變?yōu)榱薙pringboot + Mybatis。
相關(guān)案例查看更多
相關(guān)閱讀
- 報(bào)廢車拆解回收管理系統(tǒng)
- 楚雄網(wǎng)站建設(shè)公司
- 汽車報(bào)廢回收管理軟件
- 云南網(wǎng)站建設(shè)報(bào)價(jià)
- 云南網(wǎng)站建設(shè)專家
- 用戶登錄
- 手機(jī)網(wǎng)站建設(shè)
- 北京小程序制作
- 云南網(wǎng)絡(luò)公司
- 云南小程序開發(fā)公司
- 小程序開發(fā)排名前十名
- 公眾號(hào)模板消息
- 紅河小程序開發(fā)
- 汽車報(bào)廢
- 搜索引擎排名
- 云南省建設(shè)廳官方網(wǎng)站
- 搜索引擎優(yōu)化
- 昆明網(wǎng)絡(luò)公司
- 定制小程序開發(fā)
- 云南小程序開發(fā)公司推薦
- 小程序開發(fā)公司
- 云南網(wǎng)站優(yōu)化公司
- 云南網(wǎng)絡(luò)推廣
- 汽車報(bào)廢回收管理系統(tǒng)
- 昆明網(wǎng)站建設(shè)公司
- 報(bào)廢車回收
- 網(wǎng)站維護(hù)
- 小程序公司
- 昆明小程序開發(fā)
- 正規(guī)網(wǎng)站建設(shè)公司