Shale 不是什么?Shale 不是打包好的、有編制好的文檔并經(jīng)過嚴(yán)格測(cè)試的產(chǎn)品,也沒有附帶自動(dòng)安裝程序和優(yōu)雅的治理界面。那么 Shale 到底是什么呢?Brett McLaughlin 在本文中將揭開這個(gè) Struts 后代的面紗。在本文中,Brett 解釋了 Shale 是什么,Shale 與 Struts 框架的不同之處,以及如何在開發(fā)環(huán)境中安裝和設(shè)置它。
在過去 5 年間出現(xiàn)的所有 Web 框架中,Jakarta Struts 是 java™ 開發(fā)人員使用得最多的一種框架,因此其后代的問世是一件值得注重的事情。雖然 Shale 還不是最流行的框架,也不是最為人熟悉的框架,但是出自名門的背景仍給人以深刻印象。更令人興奮的是,Shale 并不僅僅是 Struts 的重大升級(jí)和新的發(fā)行版:它徹底更新了 Struts 中的很多核心原則,并且加入了 Web 開發(fā)中最新的思想。
您將了解到,Shale 與 Struts 的背離是一柄雙刃劍。一方面,Shale 是經(jīng)過精心設(shè)計(jì)的 Struts 的后代。Shale 的創(chuàng)立者綜合考慮了 Struts 的優(yōu)點(diǎn)和不足,提出可與其前輩媲美的下一代框架。另一方面,正如您很快就可以在這個(gè)系列中看到的一樣,Shale 是 一種完全不同于 Struts 的框架,其中隱含著很多新的開發(fā)工作!
Shale 不僅僅是 Struts 的又一個(gè)修正版,它已擴(kuò)展到超出 Struts 所能達(dá)到的高度。它包含 Java Web 程序設(shè)計(jì)中一些最重要的、最近的開發(fā)成果,包括 jsp Standard Tag Library(JSTL)和 JavaServer Faces(JSF),并建立在這些開發(fā)成果之上。Shale 完全應(yīng)該被看作是與 Struts 不同的一種框架,在這個(gè)系列中,我將還 Shale 框架以本來面目。在這個(gè)月的文章中,將首先對(duì) Shale 與 Struts 之間的區(qū)別作一個(gè)概述,然后帶您體驗(yàn)安裝 Shale 并測(cè)試安裝情況的步驟。最后,我將給出一些思想,令您能進(jìn)一步參與到 Shale 項(xiàng)目(它是開放源碼的)中,并提供一些相關(guān)的信息。整個(gè)系列的目的就是要向您展示如何安裝 Shale 以及如何使用 Shale 構(gòu)建和開發(fā)項(xiàng)目,同時(shí)很少涉及 Shale 的前輩,即 Struts 框架。
評(píng)價(jià) Shale
任何新的 Web 開發(fā)框架要想在這個(gè)競(jìng)爭(zhēng)已經(jīng)很激烈的領(lǐng)域占得一席之地,最好能夠經(jīng)受住巨大壓力下的評(píng)測(cè)。好消息是,Shale 獨(dú)力經(jīng)受住了細(xì)致的考察。但是,壞消息是,由于 Shale 完全是對(duì) Struts 重新構(gòu)建的產(chǎn)物,因此必須重新編寫和重新測(cè)試您所有基于 Struts 的代碼,以便實(shí)現(xiàn)這些代碼。您將花同樣多的精力來編寫一個(gè)新的 Shale 應(yīng)用程序,或?qū)⒁粋€(gè) Struts 應(yīng)用程序轉(zhuǎn)換成 Shale 應(yīng)用程序,就似乎 Shale 與 Struts 完全無關(guān)一樣。
所以接下來我們?nèi)滩蛔∫獑枺瑸槭裁催€要采用 Shale 呢?為了得出答案,我首先解釋一下 Shale 的偉大之處 —— 這在很大程度上是由于它的 Struts 血統(tǒng),但這又不是惟一的原因 —— 然后討論 Shale 之所以沒有 被發(fā)布為 Struts 框架的重要修正版的兩大原因。這樣,您就會(huì)更好地理解從 Shale 身上可以得到什么,這將有助于評(píng)價(jià)使用這種下一代的框架是否值得。
Struts 血統(tǒng)
Shale 重用了大量的 Struts 代碼基,并聲稱 Struts 是它的 “父” 框架,因此假如您要相信 Shale 的價(jià)值,就得相信 Struts 的價(jià)值。首先,Struts 作為第一個(gè)真正意義上的 Web 開發(fā)框架,擁有巨大的價(jià)值。據(jù) Shale 和 Struts 網(wǎng)站報(bào)道,第一批代碼是在 2000 年 6 月提交給 Struts CVS 存儲(chǔ)庫的,而Struts 1.0 是在 2001 年末才發(fā)布的。當(dāng)很多開發(fā)人員正在艱難地使用 JavaServer Pages(JSP)和不斷變化的 servlet 規(guī)范時(shí),Struts 提供了一種易于使用的 Model 2 方法來構(gòu)建基于 servlet 和 JSP 的 Web 應(yīng)用程序。換句話說,Struts 使 Web 開發(fā)人員可以開發(fā)健壯的 Web 應(yīng)用程序,而不必精于日志記錄、分布式計(jì)算、JDBC、Servlet、JSP、JNDI、RMI 和 大量其他的 API 和技術(shù)。
接下來,Struts 要做的事情就是保持它的強(qiáng)大性:從寫出第一批代碼開始,Struts 連續(xù) 6 年一直是最流行的 Web 開發(fā)框架之一。至今它仍然是人們口中的談資,筆下的素材,使用得不比任何競(jìng)爭(zhēng)對(duì)手少。由于 Struts 是如此流行,如此長(zhǎng)壽,如今它已經(jīng)有豐富的功能,有良好的文檔,被廣泛地支持,并且易于使用,在它上面進(jìn)行開發(fā)和治理也很輕易。數(shù)千名開發(fā)人員對(duì) Struts 郵件列表上的問題作出答復(fù),數(shù)萬名開發(fā)人員試用 Struts 并報(bào)告問題,這使得這些問題很輕易得到修復(fù)。
最后,Struts 是不斷發(fā)展的。很多框架一開始比較強(qiáng)大,然后就停滯不前(商業(yè)產(chǎn)品和開放源碼項(xiàng)目都存在這樣的現(xiàn)象),而 Struts 總是不斷提供新的特性。當(dāng)您下載 Struts 時(shí),核心發(fā)行版中還包含一個(gè)健壯的確認(rèn)引擎(validation engine),并且 Struts 已經(jīng)與 JavaServer Faces 集成,擁有廣泛的標(biāo)記庫和一個(gè)不斷發(fā)展的 Model 2 架構(gòu),其中引入了在分布式 n-層應(yīng)用程序領(lǐng)域中最新的思想。而且告訴您,Struts 還緊跟程序設(shè)計(jì)中出現(xiàn)的新模式,例如 IoC(Inversion of Control)。Struts 與 WebWork 和 SPRing 框架自然地集成,后兩者都是具有最佳血統(tǒng)的、為使用 Web 開發(fā)中的新方法提供入口的框架。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注