国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

典型Java Web開發(fā)框架模型的研究

2021-12-20 12:18張烈超胡迎九
關(guān)鍵詞:開發(fā)人員開發(fā)者邏輯

張烈超 胡迎九

(武漢交通職業(yè)學(xué)院, 湖北 武漢 430065)

當(dāng)前,信息技術(shù)是推動經(jīng)濟活動的重要引擎,作為信息技術(shù)的核心,軟件應(yīng)用程序開發(fā)的重要性不言而喻。Java Web是軟件開發(fā)的主要模式之一,Java Web采用流行的J2EE架構(gòu),即采用基于MVC(Model,View,Controller)的分層設(shè)計思想,對數(shù)據(jù)持久層(Model層,即對數(shù)據(jù)庫的存取)、業(yè)務(wù)邏輯控制層(Controller層,即業(yè)務(wù)邏輯請求)及視圖層(View層,即用戶顯示)實行分開處理模式[1]。隨著開發(fā)技術(shù)發(fā)展及軟件應(yīng)用業(yè)務(wù)需求復(fù)雜性的提升,Java Web后臺框架技術(shù)也隨之快速發(fā)展,流行的Java Web框架較多,繁雜的框架及多種與框架相關(guān)的新理念令開發(fā)學(xué)習(xí)者無所適從。此外,中大型的項目開始采用分布式技術(shù)、微服務(wù)技術(shù)等,對開發(fā)者的要求更高,越是如此,越要學(xué)習(xí)底層的基本原理[2]。鑒于此,作者選擇Java Web框架中幾種典型的Java Web框架開發(fā)模型加以介紹,有以下幾種:(1)EJB;(2)JSP/Servlet; (3)SSH(Struts+Spring+Hibernate); (4)SSM(Spring+SpringMVC+Mybatis);(5)SpringBoot。EJB因其復(fù)雜性被其他模型替代;SpringBoot及后續(xù)的框架目前是較多軟件開發(fā)人員學(xué)習(xí)者首選的框架開發(fā)模式,為軟件開發(fā)帶來便捷性的同時并大大縮短了軟件開發(fā)周期,但它是由SSM框架發(fā)展而來,故開發(fā)者需要重點掌握SSM框架模型運行機制。鑒于以上原因,本文重點討論JSP/Servlet、SSH、SSM三種框架模型,通過此三種模型基于MVC分層設(shè)計思路及實現(xiàn)過程的對比,給出各種模型的優(yōu)缺點及其適應(yīng)性,并分析各模型在分層實現(xiàn)過程中需要注意的要點及關(guān)鍵步驟,為開發(fā)人員學(xué)習(xí)提供借鑒思路。

1 JSP/Servlet、SSH、SSM三種模型技術(shù)特點及適應(yīng)性

JSP/Servlet是Java Web早期的開發(fā)模型,就個人觀點,同SSH、SSM框架比較,JSP/Servlet算不上真正的框架模型,因為使用該模型所涉及的MVC分層業(yè)務(wù)及邏輯編碼工作均由用戶完成,而使用SSH、SSM框架,相應(yīng)環(huán)節(jié)中開發(fā)人員只需清晰系統(tǒng)參數(shù)配置流程并按模型要求正確配置模型所需的參數(shù),系統(tǒng)便可自動幫助開發(fā)人員完成數(shù)據(jù)持久層(Model層,對數(shù)據(jù)庫的操作)的封裝,并按需求完成與業(yè)務(wù)邏輯控制層(Controller層)的無縫對接,即將數(shù)據(jù)層注入至業(yè)務(wù)邏輯控制層,讓模型自動完成復(fù)雜數(shù)據(jù)存取及業(yè)務(wù)管理工作,無需編寫大量代碼。后階段開發(fā)者則可將重心放至業(yè)務(wù)邏輯控制層(Controller層)與視圖層(View層)相關(guān)工作,即完成數(shù)據(jù)提取及頁面展示的工作,從而大大縮短開發(fā)流程及時間。需要強調(diào)是,SSH、SSM模型功能較JSP/Servlet模型要強大,但透徹理解JSP/Servlet模型中的Servlet運行機制并靈活運用是學(xué)習(xí)SSH、SSM模型的基礎(chǔ);此外,選擇SSH、SSM這兩種組合方式的模型使項目的開發(fā)具有高度的可維護性和可擴展性,同時可極大提高開發(fā)效率,降低開發(fā)和維護成本;SSH、SSM模型均以Spring框架為核心,兩者的主要不同之處在于MVC的實現(xiàn)方式(Struts與SpringMVC)及ORM持久化方面(Hibernate與Mybatis):SSH注重配置開發(fā),其中的Hibernate對JDBC的完整封裝更加面向?qū)ο蠡?,對增、刪、改、查的數(shù)據(jù)維護更自動化,但SQL優(yōu)化方面較弱,對學(xué)習(xí)者要求高;SSM更注重注解式開發(fā),且ORM實現(xiàn)更加靈活,SQL優(yōu)化更簡便,入門容易。故當(dāng)前傳統(tǒng)企業(yè)項目的開發(fā),使用SSH框架比較多,而對性能要求較高的互聯(lián)網(wǎng)項目,通常會選用SSM框架[3]。

下表1給出了三種模型特點的對照表,通過表格對比可知,開發(fā)人員若掌握了以上三種模型并熟練運用,對于其他模型的學(xué)習(xí)或應(yīng)用也能起到觸類旁通之效。在實際應(yīng)用中可靈活選擇合適的開發(fā)模型。

表1 JSP/Servlet、SSH、SSM三種模型適用性對照表

2 JSP/Servlet、SSH、SSM三種模型實現(xiàn)的要點及關(guān)鍵步驟

基于MVC分層模型中的示圖層是與用戶交互的界面,主要為其他層(數(shù)據(jù)持久層或者業(yè)務(wù)邏輯控制層)傳遞數(shù)據(jù)(根據(jù)業(yè)務(wù)的不同,可分為傳入數(shù)據(jù)或讀取數(shù)據(jù)兩種方式),用前臺相關(guān)工具如Bootstrap、JQuery作JSP頁面展示交互處理,與模型的選擇具有無關(guān)性。另外,使用經(jīng)典框架與微應(yīng)用中跨平臺數(shù)據(jù)的轉(zhuǎn)換(如將后端數(shù)據(jù)換轉(zhuǎn)成JSON)等問題學(xué)習(xí)者可查閱相關(guān)資料。此處重點討論數(shù)據(jù)持久層、業(yè)務(wù)邏輯控制層、視圖層各層的核心內(nèi)容,并分析各模型在分層實現(xiàn)過程中需要注意的要點及關(guān)鍵步驟。最后根據(jù)各模型思路分別實現(xiàn)了對數(shù)據(jù)庫中表Student訪問的功能(各模型分析時以圖或代碼予以展示)。

2.1 JSP/Servlet模型實現(xiàn)的要點及關(guān)鍵步驟

圖1 利用JDBC實現(xiàn)的StudentDAO類

圖2 Servlet類的創(chuàng)建

JSP/Servlet是早期Java Web開發(fā)框架模型。該模型因簡單實用并按MVC三層開發(fā)思想實現(xiàn)了相應(yīng)層的業(yè)務(wù),適合初學(xué)者。因此,替代繁瑣而笨重的EJB并迅速成為開發(fā)模型利器。該模型中,數(shù)據(jù)持久層利用JDBC實現(xiàn)對數(shù)據(jù)庫表操作,由于頻繁訪問數(shù)據(jù)庫,實際開發(fā)中通常將這些操作封裝到類中(不同的表,創(chuàng)建獨立的DAO類,如圖1),每一個操作對應(yīng)一個獨立方法,當(dāng)需要使用該操作時,調(diào)用相應(yīng)的方法來完成;業(yè)務(wù)邏輯控制層主要由Servlet來完成,在Servlet中完成參數(shù)的接收,然后使用參數(shù)調(diào)用業(yè)務(wù)邏輯層,根據(jù)調(diào)用結(jié)果的不同跳轉(zhuǎn)到不同的頁面,需注意的是,由于安全運行機制需要,每創(chuàng)建一個Servlet業(yè)務(wù)請求類,必須在web.xml中注冊,而生成的Servlet類文件,雖然是由java代碼編寫,但必須發(fā)布至后臺tomcat下通過瀏覽器訪問才能正常運行(圖2—圖3),由于Servlet處理邏輯層業(yè)務(wù)優(yōu)秀特色,部分功能被SSH、SSM框架借鑒;JSP程序主要是做顯示層,從頁面發(fā)送請求至業(yè)務(wù)邏輯控制層,邏輯層作出響應(yīng),并將處理后的結(jié)果(數(shù)據(jù))回送至JSP頁面進行展示(圖4)。

圖3 Servlet類的注冊

圖4 由業(yè)務(wù)層提取結(jié)果至視圖層JSP頁面展示

雖然 JSP/Servlet模型具有簡單易學(xué)特點,由于需要開發(fā)者手動編寫所有代碼以實現(xiàn)相應(yīng)的功能,對于功能復(fù)雜的系統(tǒng)采用該模型則需更長的開發(fā)周期。故被更為優(yōu)秀模型如SSH所取代。

2.2 SSH模型實現(xiàn)的要點及關(guān)鍵步驟

圖5 數(shù)據(jù)庫配置

圖6 操作對象

圖7 設(shè)置生成DAO及相關(guān)類

圖8 逆向工程生成相關(guān)類

圖9 逆向工程DAO類

圖10 Hibernate與Spring對接

SSH框架也是流行的Java Web開發(fā)框架模型,是JSP/Servlet升級模型。該模型側(cè)重于配置開發(fā),以Spring框架作為核心,Spring充當(dāng)粘合劑的角色,在持久數(shù)據(jù)層與業(yè)務(wù)層之間通過配置界面方式(以Myeclipse作為開發(fā)工具)完成相關(guān)參數(shù)的設(shè)置步驟(圖5—圖6),通過Hibernate框架逆向工程方式自動生成以數(shù)據(jù)表為操作對象DAO及相關(guān)類(圖7—圖9),免除了大量代碼的編寫,生成的持久層相關(guān)數(shù)據(jù)通過注入Spring與進行整合,從而實現(xiàn)Spring與模型層的對接(圖10)。需要注意的是,Hibernate框架逆向工程生成的DAO類不能實現(xiàn)事務(wù)管理,對接后由Spring框架實現(xiàn)對數(shù)據(jù)庫的事務(wù)管理機制,事務(wù)管理分編程式和聲明式兩種,如果在 DAO程序中有嚴(yán)格的方法命名規(guī)則,在Spring框架配置文件中需予以聲明,否則只需遵循開發(fā)規(guī)則命名即可;在業(yè)務(wù)層與視圖層之間,Spring和Struts整合主要的目的就是讓Spring管理Struts中的Action(與Servlet功能類似),并將業(yè)務(wù)邏輯注入到Action中,可參考相關(guān)資料按照Struts框架的整合步驟即可完成參數(shù)配置,但需重點關(guān)注業(yè)務(wù)邏輯層注入到Aciton中配置步驟,可采用通用Setter方法注入的方式完成(圖11—圖13)。通過對應(yīng)層間的整合,最終SSH實現(xiàn)基于MVC相關(guān)層的完美整合。

圖11 Struts與Spring對接配置

圖12 DAO以Setter的方式注入Spring

圖13 Action實現(xiàn)代碼

SSH框架是Java Web應(yīng)用開發(fā)中被選用較多的框架,曾一度成為事實上應(yīng)用開發(fā)的首選,直至由于未更新Struts的安全漏洞而被SSM所替代。

2.3 SSM模型實現(xiàn)的要點及關(guān)鍵步驟

圖14 Mybatis框架執(zhí)行流程圖

如前面所述,SSM框架是當(dāng)前最流行的Java Web框架模型,它充分吸收了SSH的優(yōu)勢,比如繼續(xù)保留了Spring框架作為核心。該模型中Spring層實現(xiàn)業(yè)務(wù)對象的管理,示圖層使用Spring MVC負責(zé)請求轉(zhuǎn)發(fā)和視圖管理,模型層則以Mybatis實現(xiàn)數(shù)據(jù)對象的持久化引擎管理。用SpringMVC替代有安全漏洞的Struts;以Mybatis替代Hibernate;與JSP/Servlet模型、SSH模型操作數(shù)據(jù)庫必須花費精力編寫JDBC繁雜操作數(shù)據(jù)的過程代碼不同,Mybatis則通過xml或注解的方式將JDBC操作數(shù)據(jù)庫的過程進行封裝,開發(fā)者只需重點關(guān)注SQL本身,最后由Mybatis框架執(zhí)行sql并將結(jié)果映射成Java對象并返回(如圖14)。此外,對數(shù)據(jù)庫中所有需要操作的每一張表都變成以表名+Mapper.xml的文件,xml文件中以表的命名空間包括對該表操作的sql語句,建議開發(fā)者采用Mybatis逆向工程方式生成表名+Mapper.xml(如圖15),表名+Mapper.xml相當(dāng)于JSP/Servlet模型、SSH模型中的DAO類文件(數(shù)據(jù)表操作對象,包含該表的增刪改查的操作),采用xml標(biāo)簽與sql結(jié)合方式,解除了sql和程序代碼的耦合,適合中大型項目開發(fā),不需編寫過多的Java代碼,省卻了編譯過程,便于統(tǒng)一管理和優(yōu)化。實現(xiàn)數(shù)據(jù)對象持久化的Mybatis以注入方式完成與Spring框架的整合參數(shù)配置及實現(xiàn)(圖16—圖18),由Spring框架實現(xiàn)對數(shù)據(jù)庫的注解事務(wù)管理機制,開啟對Mapper代理開發(fā)及自動掃包模式。從而實現(xiàn)Spring框架與Mybatis的優(yōu)化整合,開發(fā)人員后期通過進一步完善,為SpringMVC層提供數(shù)據(jù)服務(wù)。

圖16 Spring框架配置文件1

圖18 Spring與Mybatis整合注解測試

對以上三種基于MVC分層設(shè)計思路模型的實現(xiàn)過程的要點及關(guān)鍵步驟加以分析可知,SSH、SSM這兩種組合方式的模型在項目的開發(fā)中都實現(xiàn)了MVC設(shè)計模式的低耦合、易維護和可擴展的分層思想,可極大提高開發(fā)效率,降低開發(fā)和維護成本,需透徹理解模型才能事半功倍;JSP/Servlet模型則簡單易學(xué),適合初學(xué)者。掌握了以上三種基本模型,開發(fā)人員在學(xué)習(xí)或者應(yīng)用中可根據(jù)實際需要靈活選擇合適的開發(fā)模型。

3 結(jié)語

本文分析了三種基于MVC分層設(shè)計思路的Java Web框架開發(fā)經(jīng)典模型優(yōu)缺點及適應(yīng)性,并給出各模型實現(xiàn)過程的要點及關(guān)鍵步驟。通過分析可知,JSP/Servlet模型簡單容易學(xué)習(xí),但采用該模型后開發(fā)者后續(xù)工作量較大;SSH、SSM這兩種模型需要開發(fā)者有較好的基礎(chǔ)知識,正確配置相關(guān)參數(shù),可為開發(fā)帶來較多的便捷性,并在項目的開發(fā)中實現(xiàn)了MVC設(shè)計模式的低耦合、易維護和可擴展的分層思想,可極大提高開發(fā)效率,降低開發(fā)和維護成本??傊?,掌握了以上三種經(jīng)典開發(fā)模型并熟練運用,對于其他模型的學(xué)習(xí)或應(yīng)用也能起到觸類旁通之效。

猜你喜歡
開發(fā)人員開發(fā)者邏輯
刑事印證證明準(zhǔn)確達成的邏輯反思
邏輯
創(chuàng)新的邏輯
Semtech發(fā)布LoRa Basics 以加速物聯(lián)網(wǎng)應(yīng)用
女人買買買的神邏輯
“85后”高學(xué)歷男性成為APP開發(fā)新生主力軍
16%游戲開發(fā)者看好VR
后悔了?教你隱藏開發(fā)人員選項
三星SMI擴展Java論壇 開發(fā)人員可用母語
宁阳县| 晋州市| 含山县| 道孚县| 溆浦县| 垣曲县| 永仁县| 绥芬河市| 永登县| 天柱县| 富锦市| 天等县| 叶城县| 神池县| 淮南市| 河源市| 易门县| 湘西| 扶余县| 尚义县| 且末县| 会理县| 吉水县| 泸州市| 泰和县| 富蕴县| 大悟县| 定襄县| 元谋县| 崇仁县| 临漳县| 九寨沟县| 分宜县| 南川市| 建平县| 周口市| 南充市| 北川| 宾川县| 湛江市| 上饶县|