• <ul id="i22wy"></ul>
    <strike id="i22wy"></strike>
  • <ul id="i22wy"><sup id="i22wy"></sup></ul>
    <strike id="i22wy"></strike>
    <strike id="i22wy"></strike>
    <fieldset id="i22wy"><menu id="i22wy"></menu></fieldset>
    114培訓(xùn)網(wǎng)歡迎您來到長沙北大青鳥!

    13140882082

    全國統(tǒng)一學(xué)習(xí)專線 9:00-21:00

    Java的三大框架是什么?

    java三大框架是:
    1、Struts
    為了解決這些問題,出現(xiàn)了Struts框架,它是一個(gè)完美的MVC實(shí)現(xiàn),它有一個(gè)中央控制類(一個(gè)Servlet),針對不同的業(yè)務(wù),我們需要一個(gè)Action類負(fù)責(zé)頁面跳轉(zhuǎn)和后臺邏輯運(yùn)算,一個(gè)或幾個(gè)JSP頁面負(fù)責(zé)數(shù)據(jù)的輸入和輸出顯示,還有一個(gè)Form類負(fù)責(zé)傳遞Action和JSP中間的數(shù)據(jù)。JSP中可以使用Struts框架提供的一組標(biāo)簽,就像使用HTML標(biāo)簽一樣簡單,但是可以完成非常復(fù)雜的邏輯。從此JSP頁面中不需要出現(xiàn)一行包圍的Java代碼了。
    可是所有的運(yùn)算邏輯都放在Struts的Action里將使得Action類復(fù)用度低和邏輯混亂,所以通常人們會把整個(gè)Web應(yīng)用程序分為三層,Struts負(fù)責(zé)顯示層,它調(diào)用業(yè)務(wù)層完成運(yùn)算邏輯,業(yè)務(wù)層再調(diào)用持久層完成數(shù)據(jù)庫的讀寫。
    使用JDBC連接來讀寫數(shù)據(jù)庫,我們最常見的就是打開數(shù)據(jù)庫連接、使用復(fù)雜的SQL語句進(jìn)行讀寫、關(guān)閉連接,獲得的數(shù)據(jù)又需要轉(zhuǎn)換或封裝后往外傳,這是一個(gè)非常煩瑣的過程。
    2、Hibernate
    這時(shí)出現(xiàn)了Hibernate框架,它需要你創(chuàng)建一系列的持久化類,每個(gè)類的屬性都可以簡單的看做和一張數(shù)據(jù)庫表的屬性一一對應(yīng),當(dāng)然也可以實(shí)現(xiàn)關(guān)系數(shù)據(jù)庫的各種表件關(guān)聯(lián)的對應(yīng)。當(dāng)我們需要相關(guān)操作是,不用再關(guān)注數(shù)據(jù)庫表。我們不用再去一行行的查詢數(shù)據(jù)庫,只需要持久化類就可以完成增刪改查的功能。使我們的軟件開發(fā)真正面向?qū)ο螅皇敲嫦蚧靵y的代碼。我的感受是,使用Hibernate比JDBC方式減少了80%的編程量。
    現(xiàn)在我們有三個(gè)層了,可是每層之間的調(diào)用是怎樣的呢?比如顯示層的Struts需要調(diào)用一個(gè)業(yè)務(wù)類,就需要new一個(gè)業(yè)務(wù)類出來,然后使用;業(yè)務(wù)層需要調(diào)用持久層的類,也需要new一個(gè)持久層類出來用。通過這種new的方式互相調(diào)用就是軟件開發(fā)中最糟糕設(shè)計(jì)的體現(xiàn)。簡單的說,就是調(diào)用者依賴被調(diào)用者,它們之間形成了強(qiáng)耦合,如果我想在其他地方復(fù)用某個(gè)類,則這個(gè)類依賴的其他類也需要包含。程序就變得很混亂,每個(gè)類互相依賴互相調(diào)用,復(fù)用度極低。如果一個(gè)類做了修改,則依賴它的很多類都會受到牽連。 為此,出現(xiàn)Spring框架。
    3、Spring
    Spring的作用就是完全解耦類之間的依賴關(guān)系,一個(gè)類如果要依賴什么,那就是一個(gè)接口。至于如何實(shí)現(xiàn)這個(gè)接口,這都不重要了。只要拿到一個(gè)實(shí)現(xiàn)了這個(gè)接口的類,就可以輕松的通過xml配置文件把實(shí)現(xiàn)類注射到調(diào)用接口的那個(gè)類里。所有類之間的這種依賴關(guān)系就完全通過配置文件的方式替代了。所以Spring框架最核心的就是所謂的依賴注射和控制反轉(zhuǎn)。
    現(xiàn)在的結(jié)構(gòu)是,Struts負(fù)責(zé)顯示層,Hibernate負(fù)責(zé)持久層,Spring負(fù)責(zé)中間的業(yè)務(wù)層,這個(gè)結(jié)構(gòu)是目前國內(nèi)*的Java Web應(yīng)用程序架構(gòu)了。另外,由于Spring使用的依賴注射以及AOP(面向方面編程),所以它的這種內(nèi)部模式非常優(yōu)秀,以至于Spring自己也實(shí)現(xiàn)了一個(gè)使用依賴注射的MVC框架,叫做Spring MVC,同時(shí)為了很好的處理事物,Spring集成了Hibernate,使事物管理從Hibernate的持久層提升到了業(yè)務(wù)層,使用更加方便和強(qiáng)大。
    Struts框架是2000年就開始起步了,技術(shù)相當(dāng)成熟,目前全球Java開發(fā)中Struts框架是顯示層技術(shù)中當(dāng)之無愧的王者。它擁有大量的用戶群和很好的開發(fā)團(tuán)隊(duì)。這也是國內(nèi)大部分Java軟件公司對新進(jìn)員工的基本要求。

    常用的Java Web框架簡介

    Web框架是人們在使用某種語言編寫Web應(yīng)用服務(wù)端時(shí)關(guān)于架構(gòu)的*實(shí)踐

    有些Web框架是從實(shí)際的Web項(xiàng)目抽取出來的 也就是說 做一個(gè)具體的應(yīng)用項(xiàng)目時(shí) 采取的架構(gòu)比較理想 就把這部分和領(lǐng)域無關(guān) 而僅和Web的請求和響應(yīng)處理有關(guān)的設(shè)計(jì)拿出來 形成一個(gè)基礎(chǔ) 在開發(fā)別的應(yīng)用項(xiàng)目的時(shí)候則可以從這基礎(chǔ)做起 讓開發(fā)者更關(guān)注領(lǐng)域問題 而不是Web的請求和響應(yīng)的控制

    也有些Web框架是直接設(shè)計(jì)出來的 很多Web框架在設(shè)計(jì)的時(shí)候也都借鑒了別的框架 吸取優(yōu)點(diǎn) 修改不足 并根據(jù)自己的框架的定位 在特定方面有自己的發(fā)揮 形成了自己的特點(diǎn) 比如有的web框架追求的是松耦合性 層次 結(jié)構(gòu)之間都不密切綁定 有的Web框架則追求敏捷性 強(qiáng)調(diào)約定而不是配置

    Java 的 Web框架雖然各不相同 但基本也都是遵循特定的路數(shù)的 使用Servlet或者Filter攔截請求 使用MVC的思想設(shè)計(jì)架構(gòu) 使用約定 XML或 實(shí)現(xiàn)配置 運(yùn)用Java面向?qū)ο蟮奶攸c(diǎn) 面向抽象實(shí)現(xiàn)請求和響應(yīng)的流程 支持Jsp Velocity等視圖

    JSF

    優(yōu)點(diǎn)

    Java EE標(biāo)準(zhǔn) 這意味著有很大的市場需求和更多的工作機(jī)會

    上手快速并且相對容易

    有大量可用的組件庫

    缺點(diǎn)

    大量的JSP標(biāo)簽

    對REST和安全支持不好

    沒有一個(gè)統(tǒng)一的實(shí)現(xiàn) 既有SUN的實(shí)現(xiàn) 又有Apache的實(shí)現(xiàn)——MyFaces

    國內(nèi)的還支持AJAX 以及有開發(fā)工具 支持

    Spring MVC

    優(yōu)點(diǎn)

    對覆蓋綁定( binding) 驗(yàn)證()等提供生命周期管理

    與許多表示層技術(shù)/框架無縫集成 JSP/JSTL Tiles Velocity Excel XSL PDF 等

    便于測試——?dú)w功于IoC

    缺點(diǎn)

    大量的XML配置文件

    太過靈活——沒有公共的父控制器

    沒有內(nèi)置的Ajax支持

    Stripes

    優(yōu)點(diǎn)

    不需要書寫XML配置文件

    良好的學(xué)習(xí)文檔

    社區(qū)成員很熱心

    缺點(diǎn)

    社區(qū)比較小

    不如其他的項(xiàng)目活躍

    里面的URL是硬編碼的

    Struts

    優(yōu)點(diǎn)

    架構(gòu)簡單——易于擴(kuò)展

    標(biāo)記庫很容易利用或者Velocity來定制

    基于控制器或者基于頁面的導(dǎo)航

    缺點(diǎn)

    文檔組織得很差

    對新特征過分關(guān)注

    通過Google搜索到的大多是Struts x的文檔

    Tapestry

    優(yōu)點(diǎn)

    一旦學(xué)會它 將極大地提高生產(chǎn)率

    HTML模板——對頁面設(shè)計(jì)師非常有利

    每出一個(gè)新版本 都會有大量的創(chuàng)新

    缺點(diǎn)

    文檔過于概念性 不夠?qū)嵱?/p>

    學(xué)習(xí)曲線陡峭

    發(fā)行周期長——每年都有較大的升級

    Wicket

    優(yōu)點(diǎn)

    對Java開發(fā)者有利(不是Web開發(fā)者)

    頁面和顯示綁定緊密

    社區(qū)活躍——有來自創(chuàng)建者的支持

    缺點(diǎn)

    HTML模板和Java代碼緊挨著

    需要對OO有較好的理解

    Wicket邏輯——什么都用Java搞定

    在Java的Web框架中 我使用過Struts Struts 試用過Stripes Wicket 了解過JSF SpringMVC 以我使用的經(jīng)驗(yàn) 我覺得看一個(gè)Java Web框架應(yīng)看看下面幾個(gè)方面

    設(shè)計(jì)理念

    一個(gè)框架設(shè)計(jì)出來應(yīng)該有一個(gè)基本的思路 它為什么要要被設(shè)計(jì)出來?有的框架的目標(biāo) 就是提高效率 有的框架的目標(biāo)的給用戶充分的選擇 有的框架的目標(biāo)是充分了解實(shí)際需求 給用戶一個(gè)盡量合理的默認(rèn)選擇 有的框架是要給使用者開發(fā)桌面程序的感覺 應(yīng)該說 一個(gè)好的框架應(yīng)該是實(shí)現(xiàn)了預(yù)期目標(biāo) 體現(xiàn)出了自己的設(shè)計(jì)理念的

    設(shè)計(jì)的合理性

    設(shè)計(jì)的合理性表現(xiàn)在框架在一些關(guān)鍵問題上的處理 比如靈活性和敏捷性之間的權(quán)衡 硬編碼和文本配置之間的權(quán)衡 靈活性指的是可以適應(yīng)用戶多樣的需求 很特殊的要求也能得到支持 有的框架的實(shí)現(xiàn)基于太多的約定 使得用戶只能遵循 而敏捷性指的是用戶在解決絕大多數(shù)常規(guī)問題的時(shí)候 能盡量少做工作 提高效率 框架設(shè)計(jì)者只能在這兩者見達(dá)到一個(gè)平衡點(diǎn) 權(quán)衡的怎么樣 就很見水平了 硬編碼和文本配置之間的權(quán)衡也很有意思 文本配置的意義在于Java是一個(gè)編譯語言 強(qiáng)調(diào)代碼的封閉 講究擴(kuò)展而不是修改 這種情況下文本配置信息可以很方便的在不修改程序的情況下改變程序行為 但是隨著一些靈活的腳本語言實(shí)現(xiàn)的 Web框架的出現(xiàn) 人們發(fā)現(xiàn)在這樣的框架中 腳本語言即做程序編碼語言 也做配置語言 還做視圖上的標(biāo)記語言 這使我們對Java實(shí)現(xiàn)的框架有了一番新的審視 既然配置文件并沒有消除對程序的修改 為什么不能在應(yīng)編碼上下下功夫呢?

    設(shè)計(jì)的平衡性

    設(shè)計(jì)的平衡性指的是 框架在設(shè)計(jì)流程中各階段 各層次的實(shí)現(xiàn)方式時(shí) 所達(dá)到的上述權(quán)衡(靈活性和敏捷性之間的權(quán)衡等)應(yīng)該是具有一致的水平 一個(gè)在控制上過分靈活 而視圖上具有非常大限制的框架是不能算做一個(gè)好的框架的

    框架真的解放了開發(fā)者嗎

    框架的目的是讓開發(fā)者把更多的精力放在領(lǐng)域問題 而非Web的請求和響應(yīng)的處理問題上 而事實(shí)上框架都做到這一點(diǎn)了嗎?不可否認(rèn) 框架的使用提高代碼的可維護(hù)性 但是框架在解放開發(fā)者這點(diǎn)上就未必了 有時(shí)還給開發(fā)者帶來了額外的負(fù)擔(dān) 事實(shí)上 直接使用Servlet 只要維持好代碼風(fēng)格 一樣可以很有效率 當(dāng)然 直接使用Servlet的靈活性就不用說了

    在我接觸的Web框架中 我最推崇的是Struts 設(shè)計(jì)優(yōu)雅 偏重靈活 也基本不造成額外的負(fù)擔(dān) 當(dāng)然這些評價(jià)是和我參與的項(xiàng)目的規(guī)模有關(guān)的 其他規(guī)模的項(xiàng)目Struts 就未必合適了 我希望Struts 能在下面幾個(gè)方面有些改善

    在提供文本配置方式的基礎(chǔ)上給一個(gè)約定配置的方式 讓開發(fā)者在大多數(shù)情況下可以不配置

    配置也支持硬編碼 因?yàn)橛袝r(shí)候維護(hù)可修改的硬編碼是很有效率的

    /Article/program/Java/hx/201311/26313

    Java目前主流框架都有哪些?

    1.Spring
    這是其他Java框架中的絕對領(lǐng)導(dǎo)者。 掌握Spring是Java開發(fā)人員職位最普遍的要求之一。 造成這種情況的原因很多,但主要的原因是普遍性。
    2.Play
    Play是大多數(shù)開發(fā)人員喜歡的另一個(gè)輕量級框架。 它允許您使用Java和Scala構(gòu)建Web應(yīng)用程序。 它是為滿足現(xiàn)代移動和Web應(yīng)用程序的需求而設(shè)計(jì)的。
    3.Spark
    Spark Framework是Java和Kotlin編程語言的一種微框架和特定于領(lǐng)域的語言。 Kotlin也可以在JVM上運(yùn)行,并且可以與Java 100%互操作。 使用Spark,您可以輕松開發(fā)Web應(yīng)用程序,微服務(wù)和REST API。
    4. JHipster
    Jhipster是*的Java框架之一。 它于2013年發(fā)布。Jhipster將Spring Boot,Angular和React集成到一個(gè)大型框架中。 它使您可以輕松構(gòu)建基于Java的現(xiàn)代Web應(yīng)用程序。
    5.Blade
    Blade是一個(gè)輕量級的Java 8+ MVC框架。 當(dāng)我們談?wù)揃lade的輕巧性時(shí),是指其源代碼的大小,該大小不超過500KB。
    6.Hibernate
    在談?wù)?的Java Web框架時(shí),不能忽視Hibernate。
    Hibernate是一個(gè)ORM(對象/關(guān)系映射)框架。 它允許您不使用SQL而是使用Java將查詢寫到數(shù)據(jù)庫服務(wù)器,這通常會改變數(shù)據(jù)庫的常規(guī)外觀。
    7. MyBatis
    MyBatis是用于Java編程的映射框架。 它簡化了將Java應(yīng)用程序與SQL數(shù)據(jù)庫鏈接的過程:它充當(dāng)它們之間的中間件。
    8.Struts
    Struts是用于創(chuàng)建企業(yè)級Java Web應(yīng)用程序的開源MVC(模型-視圖-控制器)框架。 最初的Struts框架(Struts 1.x)在2007年與WebWork框架合并時(shí)進(jìn)行了重建。 Struts 1.x和Struts 2.x不可互換,因?yàn)樗鼈冎g存在重要區(qū)別。 您可以從Struts的Releases頁面下載。
    9.Vaadin
    Vaadin是一個(gè)開放源代碼客戶端服務(wù)器框架,可讓您使用預(yù)先設(shè)計(jì)的UI組件創(chuàng)建Web應(yīng)用程序。 它是專門針對業(yè)務(wù)應(yīng)用程序而構(gòu)建的,重點(diǎn)是可訪問,美觀且直觀的用戶界面。
    10. Faces(JSF)
    JSF是一種JCP標(biāo)準(zhǔn)技術(shù),用于在Java EE平臺上創(chuàng)作基于組件的用戶界面。 該框架可能不是*的框架,但是*的好處是Oracle支持,許多其他工具,出色的文檔以及友好的社區(qū)。

    Java軟件開發(fā)工程師需要的*框架?

    Java是當(dāng)下最火編程語言之一。Java軟件開發(fā)工程師即當(dāng)下做熱門的職業(yè),而Java軟件開發(fā)*的框架你了解多少呢?每個(gè)框架都有各自的優(yōu)劣勢,IT培訓(xùn)介紹根據(jù)項(xiàng)目看哪個(gè)框架適合你。

    SpringMVC:出現(xiàn)時(shí)間久遠(yuǎn),具有較好的開發(fā)系統(tǒng),幫助你查詢需要的。*和最*的Java框架之一。


    Struts2:對于Java軟件開發(fā)工程師是個(gè)很好的選擇。它使得測試寫代碼所需的工作量減輕了。不過它也是不夠靈活的。


    Hibernate:可對java軟件開發(fā)對象執(zhí)行數(shù)據(jù)庫操作。可彌合對象和關(guān)系詞之間的差距。獨(dú)立于DB的。


    JSF:,易使用,無外部依賴,提供很多功能。


    Vaadin:是Java軟件開發(fā)工程師創(chuàng)建業(yè)務(wù)應(yīng)用程序時(shí)使用的框架。


    GWT:是免費(fèi)的,可優(yōu)化復(fù)雜的程序,可獲得單個(gè)代碼庫,簡化開發(fā)和調(diào)試過程。


    Grails:功能強(qiáng)大,設(shè)置新項(xiàng)目和支架很快。


    各種流行框架都有著自己的優(yōu)缺點(diǎn),只要你記得選個(gè)適合項(xiàng)目的,方便安裝,網(wǎng)絡(luò)的活躍程度適合的等等就可以。


    溫馨提示:為不影響您的學(xué)業(yè),來校區(qū)前請先電話咨詢,方便我校安排相關(guān)的專業(yè)老師為您解答
    • 詳情請進(jìn)入長沙北大青鳥
    • 已關(guān)注:430087
    • 咨詢電話:
    相關(guān)資料
    姓名不能為空
    手機(jī)號格式錯(cuò)誤
    主站蜘蛛池模板: 精品无码人妻一区二区三区不卡| 拍国产真实乱人偷精品| 久久精品成人免费国产片小草| 99在线精品视频观看免费| 亚洲精品宾馆在线精品酒店| 国产精品免费久久久久影院| 九九热在线视频观看这里只有精品| 亚洲精品高清国产一线久久| 欧美亚洲成人精品| 99久久国产热无码精品免费久久久久| 国产精品免费高清在线观看| 中文字幕日韩精品无码内射| 久久久久久亚洲精品不卡 | 国内精品一级毛片免费看| 亚洲av永久无码精品表情包| 麻豆国内精品久久久久久| 国产欧美日本亚洲精品一5| 97久视频精品视频在线老司机| 国产精品宾馆在线精品酒店| 精品国产第一国产综合精品| 久久精品毛片免费观看| 少妇人妻偷人精品无码视频 | 亚洲欧洲美洲无码精品VA| 久久久国产精品| 国产综合精品蜜芽| 国产精品爱搞视频网站 | www国产精品| 97精品一区二区视频在线观看| 国产精品揄拍100视频| 国产亚洲精品岁国产微拍精品| 少妇精品无码一区二区三区| 无码人妻精品中文字幕| 无码人妻丰满熟妇精品区| 亚洲AV无码国产精品色午友在线| 亚洲午夜精品一级在线播放放| 亚洲一区二区三区在线观看精品中文| 亚洲人成电影网站国产精品| 亚洲国产精品无码中文字| 久久国产欧美日韩精品| 精品调教CHINESEGAY| 国产精品美女久久久m|