Java Web目前主流比較成熟的(de)框架以(yǐ)及正在(zài)興起的(de)框架 - 新聞資訊 - 雲南小程序開發|雲南軟件開發|雲南網站建設-昆明融晨信息技術有限公司

159-8711-8523

雲南網建設/小程序開發/軟件開發

知識

不(bù)管是(shì)網站,軟件還是(shì)小程序,都要(yào / yāo)直接或間接能爲(wéi / wèi)您産生價值,我們在(zài)追求其視覺表現的(de)同時(shí),更側重于(yú)功能的(de)便捷,營銷的(de)便利,運營的(de)高效,讓網站成爲(wéi / wèi)營銷工具,讓軟件能切實提升企業内部管理水平和(hé / huò)效率。優秀的(de)程序爲(wéi / wèi)後期升級提供便捷的(de)支持!

您當前位置>首頁 » 新聞資訊 » 網站建設 >

Java Web目前主流比較成熟的(de)框架以(yǐ)及正在(zài)興起的(de)框架

發表時(shí)間:2018-7-16

發布人(rén):融晨科技

浏覽次數:78

成熟的(de)框架介紹

根據RebelLabs,也(yě)是(shì)在(zài)線Java用戶組(虛拟JUG)的(de)媒體盟友所進行的(de)調查,2018年最佳Java框架的(de)陣容如下:

這(zhè)樣下來(lái)就(jiù)是(shì)SpringMVC+Spring+MyBatis的(de)整合使用。
這(zhè)裏可以(yǐ)學習慕課網的(de):
搞定Java SSM框架開發:
http://www.imooc.com/course/programdetail/pid/59
從這(zhè)一點來(lái)說(shuō),慕課網還是(shì)很給力的(de)。

Hibernate 框架

Hibernate 是(shì)一種ORM框架,全稱爲(wéi / wèi) Object-Relative Database-Mapping,在(zài)Java對象與關系型數據庫之(zhī)間建立某種映射,以(yǐ)實現直接存取Java對象(POJO)。ORM框架是(shì)一種不(bù)同與MVC的(de)另一種思想框架,适用範圍也(yě)與MVC截然不(bù)同。
使用JDBC連接來(lái)讀寫數據庫,我們最常見的(de)就(jiù)是(shì)打開數據庫連接、使用複雜的(de)SQL語句進行讀寫、關閉連接,獲得的(de)數據又需要(yào / yāo)轉換或封裝後往外傳,這(zhè)是(shì)一個(gè)非常煩瑣的(de)過程。
這(zhè)時(shí)出(chū)現了(le/liǎo)Hibernate框架,它需要(yào / yāo)你創建一系列的(de)持久化類,每個(gè)類的(de)屬性都可以(yǐ)簡單的(de)看做和(hé / huò)一張數據庫表的(de)屬性一一對應,當然也(yě)可以(yǐ)實現關系數據庫的(de)各種表件關聯的(de)對應。當我們需要(yào / yāo)相關操作是(shì),不(bù)用再關注數據庫表。我們不(bù)用再去一行行的(de)查詢數據庫,隻需要(yào / yāo)持久化類就(jiù)可以(yǐ)完成增删改查的(de)功能。使我們的(de)軟件開發真正面向對象,而(ér)不(bù)是(shì)面向混亂的(de)代碼。我的(de)感受是(shì),使用Hibernate比JDBC方式減少了(le/liǎo)80%的(de)編程量。

Struts2框架

本詞條缺少信息欄、名片圖,補充相關内容使詞條更完整,還能快速升級,趕緊來(lái)編輯吧!
Struts2以(yǐ)WebWork優秀的(de)設計思想爲(wéi / wèi)核心,吸收了(le/liǎo) Struts框架的(de)部分優點,提供了(le/liǎo)一個(gè)更加整潔的(de)MVC設計模式實現的(de)Web 應用程序框架
Struts2以(yǐ)WebWork優秀的(de)設計思想爲(wéi / wèi)核心,吸收了(le/liǎo) Struts框架的(de)部分優點,提供了(le/liǎo)一個(gè)更加整潔的(de)MVC設計模式實現的(de)Web 應用程序框架。 Struts2引入了(le/liǎo)幾個(gè)新的(de)框架特性:從邏輯中分離出(chū)橫切關注點的(de)攔截器、減少或者消除配置文件、貫穿整個(gè)框架的(de)強大(dà)表達式語言、支持可變更和(hé / huò)可重用的(de)基于(yú)MVC模式的(de)标簽API, Struts2充分利用了(le/liǎo)從其它MVC框架學到(dào)的(de)經驗和(hé / huò)教訓,使得 Struts2框架更加清晰靈活。

Struts 框架(目前已淘汰)

struts配置太過于(yú)複雜,而(ér)且太不(bù)經用,經常報錯,維護使用不(bù)便,再加上(shàng)漏洞前科,很多中小型都放棄了(le/liǎo)使用,直接用spingMVC替代。而(ér)hibernate性能一般,再加上(shàng)sql語句全封裝,而(ér)Mybatis是(shì)半封裝,更加靈活。性能強大(dà),已經有了(le/liǎo)取而(ér)代之(zhī)的(de)趨勢。爲(wéi / wèi)了(le/liǎo)解決這(zhè)些問題,出(chū)現了(le/liǎo)Struts框架,它是(shì)一個(gè)完美的(de)MVC實現,它有一個(gè)中央控制類(一個(gè)Servlet),針對不(bù)同的(de)業務,我們需要(yào / yāo)一個(gè)Action類負責頁面跳轉和(hé / huò)後台邏輯運算,一個(gè)或幾個(gè)JSP頁面負責數據的(de)輸入和(hé / huò)輸出(chū)顯示,還有一個(gè)Form類負責傳遞Action和(hé / huò)JSP中間的(de)數據。JSP中可以(yǐ)使用Struts框架提供的(de)一組标簽,就(jiù)像使用HTML标簽一樣簡單,但是(shì)可以(yǐ)完成非常複雜的(de)邏輯。從此JSP頁面中不(bù)需要(yào / yāo)出(chū)現一行<%%>包圍的(de)Java代碼了(le/liǎo)。 可是(shì)所有的(de)運算邏輯都放在(zài)Struts的(de)Action裏将使得Action類複用度低和(hé / huò)邏輯混亂,所以(yǐ)通常人(rén)們會把整個(gè)Web應用程序分爲(wéi / wèi)三層,Struts負責顯示層,它調用業務層完成運算邏輯,業務層再調用持久層完成數據庫的(de)讀寫。

MyBatis 框架

MyBatis 本是(shì)apache的(de)一個(gè)開源項目iBatis, 2010年這(zhè)個(gè)項目由apache software foundation 遷移到(dào)了(le/liǎo)google code,并且改名爲(wéi / wèi)MyBatis 。2013年11月遷移到(dào)Github。
iBATIS一詞來(lái)源于(yú)“internet”和(hé / huò)“abatis”的(de)組合,是(shì)一個(gè)基于(yú)Java的(de)持久層框架。iBATIS提供的(de)持久層框架包括SQL Maps和(hé / huò)Data Access Objects(DAOs)。

Spring 框架

調用者依賴被調用者,它們之(zhī)間形成了(le/liǎo)強耦合,如果我想在(zài)其他(tā)地(dì / de)方複用某個(gè)類,則這(zhè)個(gè)類依賴的(de)其他(tā)類也(yě)需要(yào / yāo)包含。程序就(jiù)變得很混亂,每個(gè)類互相依賴互相調用,複用度極低。如果一個(gè)類做了(le/liǎo)修改,則依賴它的(de)很多類都會受到(dào)牽連。爲(wéi / wèi)此,出(chū)現Spring框架。
Spring的(de)作用就(jiù)是(shì)完全解耦類之(zhī)間的(de)依賴關系,一個(gè)類如果要(yào / yāo)依賴什麽,那就(jiù)是(shì)一個(gè)接口。至于(yú)如何實現這(zhè)個(gè)接口,這(zhè)都不(bù)重要(yào / yāo)了(le/liǎo)。隻要(yào / yāo)拿到(dào)一個(gè)實現了(le/liǎo)這(zhè)個(gè)接口的(de)類,就(jiù)可以(yǐ)輕松的(de)通過xml配置文件把實現類注射到(dào)調用接口的(de)那個(gè)類裏。所有類之(zhī)間的(de)這(zhè)種依賴關系就(jiù)完全通過配置文件的(de)方式替代了(le/liǎo)。所以(yǐ)Spring框架最核心的(de)就(jiù)是(shì)所謂的(de)依賴注射和(hé / huò)控制反轉。

spring MVC 框架

Spring MVC屬于(yú)SpringFrameWork的(de)後續産品,已經融合在(zài)Spring Web Flow裏面。Spring 框架提供了(le/liǎo)構建 Web 應用程序的(de)全功能 MVC 模塊。使用 Spring 可插入的(de) MVC 架構,從而(ér)在(zài)使用Spring進行WEB開發時(shí),可以(yǐ)選擇使用Spring的(de)SpringMVC框架或集成其他(tā)MVC開發框架,如Struts1,Struts2等。
它是(shì)一個(gè)典型的(de)教科書式的(de)mvc構架,而(ér)不(bù)像struts等都是(shì)變種或者不(bù)是(shì)完全基于(yú)mvc系統的(de)框架,對于(yú)初學者或者想了(le/liǎo)解mvc的(de)人(rén)來(lái)說(shuō)我覺得 spring是(shì)最好的(de),它的(de)實現就(jiù)是(shì)教科書!第二它和(hé / huò)tapestry一樣是(shì)一個(gè)純正的(de)servlet系統,這(zhè)也(yě)是(shì)它和(hé / huò)tapestry相比 struts所具有的(de)優勢。而(ér)且框架本身有代碼,看起來(lái)容易理解。Data Access Objects(DAOs)。

正在(zài)興起的(de)框架

Jersey 框架

Jersey RESTful 框架是(shì)開源的(de)RESTful框架, 實現了(le/liǎo)JAX-RS (JSR 311 & JSR 339) 規範。它擴展了(le/liǎo)JAX-RS 參考實現, 提供了(le/liǎo)更多的(de)特性和(hé / huò)工具, 可以(yǐ)進一步地(dì / de)簡化 RESTful service 和(hé / huò) client 開發。盡管相對年輕,它已經是(shì)一個(gè)産品級的(de) RESTful service 和(hé / huò) client 框架。與Struts類似,它同樣可以(yǐ)和(hé / huò)hibernate,spring框架整合。
由于(yú)Struts2+hibernate+spring整合在(zài)市場的(de)占有率太高,所以(yǐ)很少一部分人(rén)去關注Jersey。所以(yǐ)網上(shàng)有關于(yú)Jersey的(de)介紹很少。但是(shì)它确實是(shì)一個(gè)非常不(bù)錯的(de)框架。對于(yú)請求式服務,對于(yú)GET,DELETE請求,你甚至隻需要(yào / yāo)給出(chū)一個(gè)URI即可完成操作。
舉個(gè)簡單的(de)例子(zǐ):如果你想獲得服務器數據庫中的(de)所有數據;那麽你可以(yǐ)在(zài)浏覽器或者利用Ajax的(de)GET方法,将路徑設置好;例如:localhost:8080/Student(項目名稱)/studentinfo(項目服務總體前綴)/student(處理student對象的(de)簽注)/getStudentInfo(最後前綴)。這(zhè)樣就(jiù)可以(yǐ)獲取所有學生信息。你可以(yǐ)選擇GET獲取的(de)數據的(de)返回類型:JSON,XML,TEXT_HTML(String)..獲取之(zhī)後,你可以(yǐ)通過JS将這(zhè)些數據塞到(dào)html或者jsp頁面上(shàng)。

springboot 框架

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

play 框架

play可能更加偏向于(yú)scala點,本身輕量性能高,随着逐步的(de)優化易用性以(yǐ)及擴展性都變得越來(lái)越好;

Vue.js 框架

嚴格來(lái)說(shuō)這(zhè)個(gè)應該不(bù)屬于(yú)框架, 從組建構造上(shàng)來(lái)講 是(shì)和(hé / huò)reactjs 類似的(de)構造UI組件的(de)。 從整體邏輯來(lái)講, 他(tā)要(yào / yāo)解決的(de)是(shì)MVVM的(de)VM這(zhè)個(gè)部分, 就(jiù)是(shì)如何把應用程序的(de)model 和(hé / huò) view 聯系起來(lái)的(de)這(zhè)個(gè)VM(view model) 部分。衆所周知, MVC這(zhè)個(gè)design pattern争議大(dà)的(de)就(jiù)是(shì)這(zhè)個(gè)C的(de)部分, 所以(yǐ)才有各種MV* 的(de)方案提出(chū)。 他(tā)使用起來(lái)确實比reactjs 簡單方便多了(le/liǎo)。 代碼也(yě)清晰。借鑒了(le/liǎo)angularjs的(de)declarative的(de)特點。 另外文檔, 例子(zǐ)做的(de)都很漂亮。 上(shàng)手比較快, 這(zhè)些都是(shì)很好的(de)優點。

jfinal 框架

JFinal 是(shì)基于(yú)Java 語言的(de)極速 web 開發框架,其核心設計目标是(shì)開發迅速、代碼量少、學習簡單、功能強大(dà)、輕量級、易擴展、Restful。在(zài)擁有Java語言所有優勢的(de)同時(shí)再擁有ruby、python等動态語言的(de)開發效率。

框架整合

最初是(shì)Struts+ Spring + Hibernate。

後來(lái)演變爲(wéi / wèi)Struts2 + Spring + Hibernate。

後來(lái)随着Spring的(de)強大(dà)以(yǐ)及Struts漏洞上(shàng)的(de)等等問題,演變成爲(wéi / wèi)了(le/liǎo)Spring + SpringMVC + Hibernate/Mybatis 互聯網這(zhè)塊比較常見的(de)是(shì)Mybatis。

最近也(yě)慢慢演變爲(wéi / wèi)了(le/liǎo)Springboot + Mybatis。

相關案例查看更多