定義基于J2EE Web開發(fā)信息系統(tǒng)的方法_第1頁
定義基于J2EE Web開發(fā)信息系統(tǒng)的方法_第2頁
定義基于J2EE Web開發(fā)信息系統(tǒng)的方法_第3頁
定義基于J2EE Web開發(fā)信息系統(tǒng)的方法_第4頁
定義基于J2EE Web開發(fā)信息系統(tǒng)的方法_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、定義基于J2EE Web開發(fā)信息系統(tǒng)的方法Askar S. Boranbayev Eurasian National University, 5 Munaitpassov Street, Astana, 010008, Kazakhstan文章信息: 關(guān)鍵字:J2EE 架構(gòu) 網(wǎng)站開發(fā)摘要:這篇文章描述了Java項(xiàng)目開發(fā)的框架的概念并且描述了框架是如何在IT項(xiàng)目中被使用的。開發(fā)框架被創(chuàng)建是因?yàn)樵S多設(shè)計和開發(fā)任務(wù)用多次不同的方式來重復(fù)進(jìn)行,而且這些方法并不總是符合最佳實(shí)踐。我們已經(jīng)確定了共同的應(yīng)用程序關(guān)系和交付的設(shè)計模式和工具,這就代表有效的解決方案。開發(fā)框架提供:應(yīng)用程序從用戶數(shù)據(jù)集成接口開發(fā)堆

2、棧一個架構(gòu)、基礎(chǔ)設(shè)施和相關(guān)技術(shù)為提高和改變其他一些框架。該體系結(jié)構(gòu)定義了一個開發(fā)方法,其目的是幫助定制開發(fā)項(xiàng)目1簡介軟件工具和對空間動態(tài)系統(tǒng)的非線性復(fù)雜分析的包越來越多地使用web的網(wǎng)絡(luò)平臺實(shí)現(xiàn)的用戶界面,從而實(shí)現(xiàn)科學(xué)分析、分布的模擬和科學(xué)家之間的信息交換。非線性分析模擬的實(shí)時網(wǎng)絡(luò)訪問軟件成為許多應(yīng)用系統(tǒng)的關(guān)鍵部分。網(wǎng)絡(luò)硬件和密集的技術(shù)變革軟件1提供了比過去更多的自由選擇2。因此,理性的選擇和發(fā)展網(wǎng)絡(luò)平臺對整個地區(qū)的非線性分析和它的許多應(yīng)用程序是越來越重要的。當(dāng)前Web開發(fā)階段的特點(diǎn)是大量的開源框架的出現(xiàn)。基于框架的Web開發(fā)的重點(diǎn)轉(zhuǎn)移到一個更高的水平,允許重用基本功能,從而增加了工作的效率。

3、 在某些情況下,開源框架沒有提供常見問題的解決方案。出于這個原因,開發(fā)人員構(gòu)建自己開發(fā)框架之上的開源框架。本文的目的是描述一個開發(fā)基于java框架,利用開源框架和協(xié)助開發(fā)基于web的應(yīng)用程序。通過分析一些現(xiàn)有的開源框架,本文提出了一種新的體系結(jié)構(gòu)、基礎(chǔ)設(shè)施和相關(guān)的技術(shù)用于提高和利用其他一些框架。該體系結(jié)構(gòu)定義了自己的開發(fā)方法,旨在幫助定制開發(fā)項(xiàng)目和集成項(xiàng)目。 在項(xiàng)目開發(fā)中有一些共同的應(yīng)用程序開發(fā)方法。甚至在獨(dú)特的功能需求、用例有常見的模式,有助于設(shè)計和開發(fā)重用。本文描述了一個“自定義”框架,它被開發(fā)用來確定這種常見應(yīng)用問題和識別設(shè)計模式,并且這種框架開發(fā)人員可以使用的。這個框架,我們將參考XY

4、Z開發(fā)框架,提供了一組模式和工具,是建立在行業(yè)最佳實(shí)踐,量身定做常見的應(yīng)用程序問題。它提供了一個應(yīng)用程序開發(fā)堆棧,集成和表示層。本文闡述了這些應(yīng)用程序問題和模式,工具和最佳實(shí)踐。XYZ框架可以定制各種項(xiàng)目的需求。這是基于各種框架開發(fā)和配置和工具如Struts、Spring、Hibernate和JUnit。2開發(fā)框架時使用的技術(shù) 2.1 層和代碼和配置分離 Web應(yīng)用程序有各種設(shè)計問題如表示、業(yè)務(wù)邏輯、數(shù)據(jù)訪問和安全。分離設(shè)計問題成不同的代碼層有幾個優(yōu)點(diǎn)如:易于維護(hù)、實(shí)施的能力 良好的設(shè)計模式,能夠?yàn)樘囟▎栴}選擇專門的工具和技術(shù)。分離一個項(xiàng)目會導(dǎo)致這些層之間的存在著獨(dú)立關(guān)系。例如,一次性案件和簡

5、單的數(shù)據(jù)條目 調(diào)查通常必須集成表示,業(yè)務(wù)邏輯和數(shù)據(jù)訪問一起交付所需的功能3。 因此,必須有一個良好定義的策略來管理依賴關(guān)系。XYZ框架結(jié)合設(shè)計模式、可重用的代碼和配置文件,使這種盡可能容易。這個框架使用 Spring的控制管理依賴性。Spring框架4提供了一種方法將對象聯(lián)系在一起來開發(fā)一個應(yīng)用程序。它與Spring應(yīng)用程序?qū)崿F(xiàn)這一目標(biāo),這是一種對對象之間的依賴關(guān)系的戰(zhàn)略管理。Spring使用下面的描述方的依賴項(xiàng)注入和攔截技術(shù)。 我們寫的代碼依賴于它所使用的對象。它負(fù)責(zé)創(chuàng)建這些對象。這可能導(dǎo)致 在緊密耦合,但我們希望,我們的代碼是松散耦合的。依賴注入是一種幫助我們做到這一點(diǎn)的技術(shù)。依賴注入是一

6、種控制反轉(zhuǎn)(IoC)形式5。當(dāng)應(yīng)用程序使用依賴注入,代碼變得更清晰,更容易閱讀。而這也是松散耦合,允許更容易配置和測試。XYZ框架使用幾個Spring應(yīng)用程序上下文文件來定義層之間的依賴關(guān)系。攔截方法是一個概念的面向方面的編程(AOP)6。Spring AOP實(shí)現(xiàn)方法攔截 通過JDK動態(tài)代理。XYZ框架使用Spring AOP來管理事務(wù)管理等問題和性能監(jiān)控。 XYZ框架包括兩個不同的部分:代碼和配置。代碼駐留在一個特定的應(yīng)用程序?qū)?集中于一個特定應(yīng)用程序的解決方案。這可能是與數(shù)據(jù)庫交互, 或提供數(shù)據(jù)到屏幕上。配置將應(yīng)用程序的各層連接在一起。分離的配置使我們能夠獨(dú)立管理配置,使我們對相同的代碼運(yùn)

7、用不同的配置。例如,一個數(shù)據(jù)訪問對象(DAO)實(shí)現(xiàn)知道使用JDBC連接到一個數(shù)據(jù)源數(shù)據(jù)庫,但是它不知道任何關(guān)于數(shù)據(jù)源的實(shí)現(xiàn)。它可能會從Java命名和目錄接口(JNDI)上下文或來自一個驅(qū)動程序管理器。它可能指向遠(yuǎn)程數(shù)據(jù)庫或本地數(shù)據(jù)庫。不管數(shù)據(jù)源來自何方,DAO實(shí)現(xiàn)來運(yùn)作的數(shù)據(jù)源以相同的方式。同樣,服務(wù)對象可能取決于一個DAO,但是它不知道是否DAO 實(shí)現(xiàn)通過Hibernate、直接JDBC或Web服務(wù)。服務(wù)對象與DAO以同樣的方式, 不管DAO的實(shí)現(xiàn)。 Spring給了我們一個方法來管理我們的應(yīng)用程序即通過Spring應(yīng)用程序上下文定義的 一組XML文件。我們可以在一個文件中定義應(yīng)用程序上下文

8、。然而,通過定義小文件,我們可以簡化配置管理。以這樣的應(yīng)用程序上下文文件,構(gòu)成一套完整的應(yīng)用程序的邏輯配置被稱為配置。 在基于Java的企業(yè)級應(yīng)用開發(fā)中標(biāo)準(zhǔn)配置文件是一個使用了外部資源,例如數(shù)據(jù)源和JNDI源的框架配置文件。這種類型的配置有時可以產(chǎn)生問題:(1)尚未加載一個不完整的數(shù)據(jù)庫。開發(fā)人員可能希望測試顯示的某些類型的數(shù)據(jù),但如果底層數(shù)據(jù)庫尚未完成,他們將無法做到這一點(diǎn)。(2)服務(wù)或DAO可能還沒有被開發(fā)出來。我們可以使用備用配置專門設(shè)置實(shí)現(xiàn)發(fā)展目標(biāo)。 這些問題降低工作效率。所開發(fā)的XYZ框架使它的配置從代碼中分離出來。我們可以使用備用配置專門設(shè)置實(shí)現(xiàn)發(fā)展目標(biāo)。這將緩解我們外部系統(tǒng)可用性

9、的困擾,這樣可以解決當(dāng)前發(fā)展的需要。 XYZ框架定義了兩個配置設(shè)置:默認(rèn)和獨(dú)立。我們還可以根據(jù)我們的項(xiàng)目需求在原有的配置文件上添加額外的配置。默認(rèn)de 配置設(shè)置使用JNDI連接開發(fā)數(shù)據(jù)庫中定義的數(shù)據(jù)源。它使用完全開發(fā)應(yīng)用程序服務(wù)和DAO。獨(dú)立的配置是最靈活的發(fā)展環(huán)境。這個配置設(shè)置: (1)連接本地安裝的數(shù)據(jù)庫或開發(fā)數(shù)據(jù)庫使用數(shù)據(jù)源驅(qū)動程序管理器;(2)使用Spring的 數(shù)據(jù)源事務(wù)管理器的本地事務(wù)管理;(3)使用完全開發(fā)應(yīng)用程序服務(wù)和DAOs; 和(4)完全連接Spring應(yīng)用程序上下文之外的完全可以運(yùn)行和測試應(yīng)用程序服務(wù)器。 XYZ框架通過應(yīng)用程序上下文進(jìn)行配置。在一個或定義的應(yīng)用程序上下文

10、可能 更多的XML文件。一個配置組是一組定義一個應(yīng)用程序上下文XML文件。配置集由兩個部分:服務(wù)和網(wǎng)絡(luò)。服務(wù)部分定義服務(wù)、dao和資源服務(wù)和集成層。 網(wǎng)絡(luò)部件定義了表示層組件。一套配置不能完全沒有這兩種部分。 2.2 類和依賴關(guān)系 使用XYZ開發(fā)框架,下面的代碼將通常需要開發(fā)和配置工件 用戶界面屏幕:(a)行動,ActionForm類和驗(yàn)證。xml條目;(b)服務(wù)接口和實(shí)現(xiàn) 類;(c)DAO接口和實(shí)現(xiàn)類,(d)之間的依賴關(guān)系管理上面。當(dāng)開始 開發(fā)一個用例,我們必須意識到的需要所有這些類及其依賴項(xiàng)的前期。 2.3 測試技術(shù) 測試應(yīng)該開發(fā)過程中不可或缺的一部分。使用XYZ開發(fā)框架構(gòu)建的應(yīng)用程序,

11、單元測試意味著在服務(wù)或集成層測試一個類的方法。表示層構(gòu)件不采取單元測試。此測試程序的目的是要確保行為封裝類是預(yù)期在測試與其他組件集成。單元測試的應(yīng)用程序,開發(fā)使用XYZ框架,是基于JUnit框架7。不同于單元測試,集成測試要求判斷代碼的依賴關(guān)系可用性。這個測試的目的是確保不同階層之間的集成(發(fā)達(dá) 由不同的開發(fā)人員)是否按預(yù)期運(yùn)行。在功能測試過程中,重點(diǎn)是測試的功能。應(yīng)用程序通過使用數(shù)據(jù)來測試不同的場景。功能測試通常涉及測試類的服務(wù) 與不同的數(shù)據(jù)層。它也可以由測試用戶界面層和通過使用真正的依賴關(guān)系。 為了執(zhí)行不同類型的測試,所開發(fā)的應(yīng)用程序必須是可測試的。下列是一個可測試的應(yīng)用程序的基本特征。(

12、1)易于開發(fā)單元測試和集成測試。我們應(yīng)該能夠進(jìn)行單位測試而且沒有必要使用數(shù)據(jù)源或者隊(duì)列。同時,我們應(yīng)該能夠模擬依賴代碼測試。(2) 模擬各種測試場景的功能測試。(3)易于反復(fù)重新運(yùn)行所有測試的生命周期的應(yīng)用程序。(4)從應(yīng)用程序代碼分離測試代碼。 結(jié)構(gòu)良好的應(yīng)用程序,將設(shè)計問題分離開,如服務(wù)和數(shù)據(jù)訪問是非常重要的。應(yīng)用程序編碼始于getter、setter、變量等,然后綜合提供所需的解決方案。單元測試是一種測試方法的基本構(gòu)建塊。XYZ 框架的設(shè)計便于開發(fā)的可測試的應(yīng)用程序:提供測試模板類,有助于創(chuàng)建單元測試,也通過使容易配置應(yīng)用程序適應(yīng)測試的需要。可以像任何運(yùn)行JUnit單元測試。專門開發(fā)的默

13、認(rèn)“構(gòu)建腳本”提供了一個任務(wù)運(yùn)行單元測試。這個任務(wù)可以在生成時調(diào)用 EAR文件部署或可以單獨(dú)運(yùn)行。 2.4 Web演示設(shè)計 XYZ框架使用Struts框架開發(fā)的概念和JavaScript來實(shí)現(xiàn)和提供了額外的特性,可以用于擴(kuò)展項(xiàng)目。當(dāng)使用Struts框架進(jìn)行開發(fā)時, 首先我們設(shè)置行動Servlet在web.xml;然后我們設(shè)置配置、動作映射,表單和本地轉(zhuǎn)發(fā) struts-config.xml;最后,我們在validation.xml建立驗(yàn)證規(guī)則。 這種方法已經(jīng)改變了使用XYZ構(gòu)建的應(yīng)用程序框架,這樣開發(fā)人員 不能直接編輯struts-config.xml或validation.xml。相反,我們

14、指定該信息作為XDoclet注釋 直接行動和ActionForm類。該信息通過運(yùn)行Ant腳本然后轉(zhuǎn)入struts-config.xml和validation.xml。 有兩種類型的驗(yàn)證,要求:數(shù)據(jù)格式驗(yàn)證和業(yè)務(wù)邏輯驗(yàn)證。數(shù)據(jù)格式 驗(yàn)證最好是在表示層,業(yè)務(wù)邏輯驗(yàn)證最好是在服務(wù)層。 業(yè)務(wù)邏輯驗(yàn)證錯誤,發(fā)生在服務(wù)層,應(yīng)該由拋出定制的異常處理。 以下是表示層的設(shè)計目標(biāo):(1)只有一個Action類對每個JSP。一個Web頁面都必須處理一個Action類。(2)指定依賴項(xiàng)和驗(yàn)證規(guī)則 使用XDoclet注釋。(3)開發(fā)人員應(yīng)該避免或減少會話對象的使用,因?yàn)樗璧K了可伸縮性。 XYZ框架提供了一個默認(rèn)模板操

15、作類包含上述的解決方案設(shè)計 這一層的目標(biāo)。以下是典型的代碼工件需要開發(fā)一個Web頁面:(1)創(chuàng)建一個新JSP 默認(rèn)隱藏字段稱為“actionType”用于處理用戶操作,預(yù)計將出現(xiàn)在頁面上。(2)創(chuàng)建 一個新的操作類,擴(kuò)展了此模板操作類。我們必須指定依賴ActionForm特定的方法 處理用戶的行為由隱藏字段中的值表示“actionType”。之后,我們可以聲明所需的權(quán)限來訪問這個Action類。這樣做是在Spring配置文件中。(3)創(chuàng)建一個新的ActionForm類 使用XDoclet注釋和指定驗(yàn)證規(guī)則的要求。 創(chuàng)建JSP后,行動和ActionForm,需要運(yùn)行Ant腳本重新生成“strut

16、s - config . xml” 文件。 2.5 數(shù)據(jù)庫連接XYZ框架構(gòu)建的應(yīng)用程序使用JDBC和Hibernate框架將會一直發(fā)送數(shù)據(jù)到關(guān)系數(shù)據(jù)庫中。應(yīng)用程序配置了必要的Spring上下文文DAOS, 使用直接JDBC必須擴(kuò)展Spring框架的JdbcDaoSupport.java類。同樣,使用Hibernate必須的dao擴(kuò)展Spring框架的HibernateDaoSupport.java類。2.6 通過注釋配置XYZ框架使用Spring框架維護(hù)代碼構(gòu)件之間的依賴關(guān)系。這些依賴項(xiàng)(如行動與ActionForm)在“struts-config.xml配置”,而 其他(如服務(wù)和DAO)之間

17、配置在Spring應(yīng)用程序上下文文件(中)。在 團(tuán)隊(duì)環(huán)境中這些配置文件由開發(fā)人員共享。這就是為什么這些配置版本沖突 文件可能發(fā)生。發(fā)達(dá)XYZ框架提供了一種新的有效的方法,使用特殊的注釋來指定 這些依賴關(guān)系。通過使用這些注釋,配置成為配置更簡單和避免沖突性的變更。3.服務(wù)的開發(fā)框架XYZ框架促進(jìn)使用普通舊式j(luò)ava對象(pojo)來實(shí)現(xiàn)業(yè)務(wù)邏輯。必須聲明為邏輯接口。所有服務(wù)實(shí)現(xiàn)必須實(shí)現(xiàn)一個或多個業(yè)務(wù)接口。這是當(dāng)業(yè)務(wù)規(guī)則驗(yàn)證錯誤時建議服務(wù)層拋出定制業(yè)務(wù)異常的開發(fā)。XYZ框架采用聲明式事務(wù)管理方法基于Spring框架8。這是使用面向方面的編程(AOP)實(shí)現(xiàn)。XYZ框架促進(jìn)良好實(shí)踐的分離部署接口服務(wù)接

18、口。部署是一個Java接口 表示服務(wù)暴露在WSDL接口。實(shí)現(xiàn)這個接口的類總是必須委托請求實(shí)現(xiàn)服務(wù)接口的類。這確保了所有業(yè)務(wù)邏輯保持在一個地方正確的層。服務(wù)接口是一個Java接口,代表業(yè)務(wù)邏輯。在大多數(shù)情況下,部署接口將包含從服務(wù)接口的一個子集的方法。Apache Axis Web服務(wù)框架1.2.4是當(dāng)前的Web服務(wù)標(biāo)準(zhǔn)。在開發(fā)Web服務(wù)時, 有兩種截然不同的方法9:先制定協(xié)議和最后制定協(xié)議。區(qū)別在于方法首先在于是否創(chuàng)建WSDL還是從代碼生成。先制定協(xié)議是一個很好的實(shí)踐開發(fā)Web服務(wù),服務(wù)使用者和提供者外部供應(yīng)商可能使用不同的技術(shù)實(shí)現(xiàn)Web服務(wù)相互(他們可能使用.NET 而不是Java)10。4

19、. 中間層集成有幾種技術(shù)集成外部資源(如數(shù)據(jù)庫和Web服務(wù)。XYZ框架使用這些技術(shù)在邏輯層稱為“集成”層。這一層的設(shè)計目標(biāo) 是:(1)使用JDBC訪問數(shù)據(jù)庫或Hibernate應(yīng)封裝在數(shù)據(jù)訪問對象(DAO)。(2)使Web服務(wù)應(yīng)該盡可能簡單。(3)所有外部數(shù)據(jù)格式轉(zhuǎn)換為應(yīng)用程序的域?qū)ο?應(yīng)該限制在這一層。(4)在這一層單元測試類應(yīng)該簡單和容易。XYZ框架支持使用Hibernate和直接JDBC調(diào)用來訪問關(guān)系數(shù)據(jù)庫。這是 推薦使用Spring框架的模板類:JdbcTemplate HibernateTemplate。當(dāng)使用直接JDBC 訪問關(guān)系數(shù)據(jù)庫,建議應(yīng)用程序的dao擴(kuò)展Spring框架的JdbcDaoSupport。 JdbcTemplate類管理資源用于訪問數(shù)據(jù)庫(例如PreparedStatement)。發(fā)達(dá) XYZ框架將數(shù)據(jù)源插入DAOs使用應(yīng)用程序配置文件。當(dāng)使用Hibernate來訪問 關(guān)系數(shù)據(jù)庫、Hibernate Sessi

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論