《電子技術應用》
您所在的位置:首頁 > 其他 > 業(yè)界動態(tài) > J2EE集成開源框架在高校課程改革系統(tǒng)中的應用

J2EE集成開源框架在高校課程改革系統(tǒng)中的應用

2009-06-05
作者:李文杰,翁勝利

??? 摘 要:以高校課程改革為應用實例,通過對基于WebWork、Spring和Hibernate的J2EE輕量級集成框架的研究與應用,以及對三種開源軟件基礎技術的介紹,闡述了集成框架在高校專業(yè)課程改革系統(tǒng)開發(fā)中代碼復用、系統(tǒng)開發(fā)效率以及在提高數(shù)據(jù)預處理和數(shù)據(jù)挖掘精確度上的優(yōu)勢。
??? 關鍵詞:J2EE;集成開源框架;數(shù)據(jù)預處理

?

??? 隨著信息技術的發(fā)展以及B/S應用程序的廣泛使用,為了能簡單高效地開發(fā)Web項目,迫切需要一個通用、穩(wěn)定的集成架構,以此提高工作效率、增強程序的可維護性和可擴展性。本文選擇開源框架WebWork、Spring和Hibernate,以高校課程改革為應用背景,實現(xiàn)了一套方便靈活、低耦合、易維護的開發(fā)方式。
1 J2EE開源框架
1.1 MVC模式
??? 傳統(tǒng)的Web項目開發(fā)存在諸多不足,MVC (Model View Controller)模式的出現(xiàn)使其得到了改進和完善。在MVC模式中Event導致Controller改變Model或View,或者同時改變兩者。當Controller改變了Model的數(shù)據(jù)或者屬性時,所有依賴的View都會自動更新;當Controller改變了View的部分時,View會從Model中獲取數(shù)據(jù)來刷新自己?;贛VC應用程序的開發(fā)是由這3個部分共同協(xié)作完成,其組件的關系和功能如圖1所示。

?


??? MVC設計模式是利用控制器來分離模型和視圖,從而達到一種層間松散耦合的效果,減弱業(yè)務邏輯接口和數(shù)據(jù)接口之間的耦合性,提高了系統(tǒng)的靈活性、可復用性和可維護性?,F(xiàn)在網(wǎng)絡開發(fā)框架多數(shù)都遵循MVC設計模式,效果較好。
1.2 WebWork框架
??? WebWork是基于Command設計模式的、致力于組件化和代碼重用的強大的開源框架[1]。在利用WebWork框架開發(fā)的過程中,根據(jù)業(yè)務邏輯創(chuàng)建的實現(xiàn)方法xAtion擔任控制器的角色,其實現(xiàn)了WebWork類庫中XWork中的Action接口。其主要功能是從請求中獲取前臺頁面需要傳送的參數(shù)值,把這些值傳遞給執(zhí)行業(yè)務邏輯操作的模型對象,由業(yè)務對象執(zhí)行業(yè)務邏輯操作,并返回給轉向頁面用來顯示執(zhí)行的結果。
??? MVC中的表現(xiàn)層負責頁面的顯示和業(yè)務邏輯的處理,利用WebWork的標簽庫與JavaScript腳本語言相結合的方式實現(xiàn)。WebWork框架從Web中脫離出來,與框架Struts相比,在Action類的抽象和Web環(huán)境的耦合方面具有優(yōu)勢,在開發(fā)過程中更加方便和實用。
1.3 Spring框架
??? Spring框架是一個分層的J2EE應用程序框架,它是一個從實際項目開發(fā)經(jīng)驗中抽取出來的,可高度重用的開發(fā)框架[2]。Spring模塊構建在核心容器之上,核心容器定義了創(chuàng)建、配置和管理 Bean 的方式。Spring通過JavaBean模型提供基于IoC 容器的BeanFactory和基于AOP框架的JavaBean組件,不需要維護組件之間的依賴關系,只要在配置文件applicationContext.xml中設置屬性,Spring容器將自動依賴注入到相關的組件,完成業(yè)務方法層組件的配置與加載。Spring框架與持久層框架Hibernate集成到一起,實現(xiàn)支持DAO以及事務策略,提高代碼的可重用性。從而,在Web應用開發(fā)過程中,實現(xiàn)邏輯層和數(shù)據(jù)訪問層的完全分離。
1.4 Hibernate框架
??? Hibernate是一種實現(xiàn)對象和關系映射的框架,對JDBC進行輕量級對象封裝,使程序員利用面向?qū)ο蟮乃枷雭聿僮麝P系數(shù)據(jù)庫,可以減輕開發(fā)者與大量普通數(shù)據(jù)持續(xù)性相聯(lián)系的一些編程任務。在開發(fā)中,自動生成的SQL,使開發(fā)者減少了進行對象轉化等繁瑣任務,并能使應用程序移植到所有SQL數(shù)據(jù)庫,提供透明的持續(xù)性。在使用Hibernate框架時,通過編寫O/R映射描述文件,完成對象、關系數(shù)據(jù)庫之間的映射,持久對象則根據(jù)映射文件生成,最后,編寫業(yè)務邏輯類,從而提高實際開發(fā)的效率。
2 集成框架原理
??? 整個J2EE輕量級Web集成開發(fā)架構選用WebWork、Spring和Hibernate 三種框架技術,實現(xiàn)集成架構。客戶端層采用JSP表示,用WebWork的標簽庫和JavaScript實現(xiàn)客戶端的顯示和控制,做相應請求和響應;表示層用WebWork統(tǒng)一管理視圖和控制器部分,接受客戶端的HTTP請求,創(chuàng)建并調(diào)用對應的Action實現(xiàn)類,完成與業(yè)務邏輯層的交互,并返回執(zhí)行結果到客戶端層;業(yè)務邏輯層利用接口與實現(xiàn)相分離的方式編寫對應的Service對象,在Spring的IoC容器中登記為業(yè)務模型,由Spring負責管理和配置DAO組件,提供對應的Action完成業(yè)務邏輯等操作,保證數(shù)據(jù)完整性;數(shù)據(jù)持久層采用Hibernate框架,使用導入DAO完成最終的Java類和數(shù)據(jù)庫間的轉換和訪問;數(shù)據(jù)層采用關系數(shù)據(jù)管理系統(tǒng),如Oracle、MySQL等,整個集成開發(fā)架構如圖2所示。

?

?

??? 采用上述方式,利用這三種框架各自的優(yōu)勢,能有效實現(xiàn)視圖、控制器與模型的分離,將業(yè)務邏輯層和數(shù)據(jù)持久層獨立出來。其中,框架WebWork在Web程序開發(fā)中起到重要作用。
3 集成框架的應用
??? 開發(fā)中,有諸多Web項目使用J2EE的開源框架,本文以高校專業(yè)課程改革系統(tǒng)為應用實體,重點介紹利用開源框架WebWork、Spring和Hibernate相結合的方式開發(fā)Web項目。 選擇MyEclipse作為Java的開發(fā)平臺,直接加載項目所需要的開源框架WebWork、Spring和Hibernate的相關的類以及配置文件。
3.1 前期準備
??? 加載開源框架類。在Web項目中,首先導入Spring開源框架,建立SessionFactory對應的類,MyEclipse開發(fā)平臺將加載Spring運行的相關類和applicationContext.xml配置文件,然后在Spring的基礎之上加載Hibernate,根據(jù)關系型數(shù)據(jù)庫所建立的表,依據(jù)MyEclipse中的配置,打開數(shù)據(jù)庫連接,導入數(shù)據(jù)表的對象類和一些基本實現(xiàn)方法。另外,把WebWork相關的類復制到項目中,添加XWork.xml文件,并在web.xml文件中配置我們所用的WebWork框架,使加載類在項目中能夠正常的使用。
??? 登錄模塊的應用。在實際Web項目中,這三種框架相結合使用的事例較多,用法基本相同,只是功能有所差別。以用戶登錄模塊為例,其主要代碼如下:
??? 用戶名:
??? 密碼:
??? XWork.xml的配置。從JSP頁面上將用戶輸入的用戶名和密碼提交后,將轉入配置文件XWork.xml中,通過這個配置文件尋找Java后臺處理登錄過程邏輯的類,同時將提交的內(nèi)容轉移到Java邏輯類中進行判斷處理。
??? 邏輯處理。與上文中XWrok.xml中的配置相對應,在LoginAction類中,使用UserLogin邏輯處理方法,判斷用戶名和密碼是否與數(shù)據(jù)庫中的數(shù)據(jù)相符,以此做出不同處理,并回顯在頁面上。UserLogin方法實現(xiàn)主要代碼如下:Userlogin:User user = lb.getLoginUser(username);session. setAttribute ('user', user);
??? 另外,在數(shù)據(jù)庫的導入過程中,根據(jù)數(shù)據(jù)庫中表的名稱,利用Hibernate框架將對象類User.java和操作類UserDAO.java導入到項目中,在處理邏輯的過程中直接調(diào)用,以此加速項目開發(fā)的周期。
??? 前臺頁面響應。在后臺根據(jù)用戶名和密碼做出判斷,在前臺顯示結果,主要表現(xiàn)為:一是頁面的轉向,通過XWork.xml的配置得出要跳轉到哪個頁面。如上文程序所示,如果返回Action. ERROR,則轉向error.jsp;如果返回Action. SUCCESS,則轉向index.jsp。另一個是信息的反饋,通過Session或Request將需要傳送到前臺頁面的值放到緩沖區(qū)里,然后顯示在JSP頁面相應的位置。
??? 從上面這個登錄流程的簡單例子可以看出,在整個集成框架中不存在與業(yè)務邏輯無關的垃圾代碼,也沒有SQL查詢語句,整個開發(fā)過程完全是面向?qū)ο蟮牟僮鞣绞胶涂蓜討B(tài)配置、可移植的Xml文件,大大提高了開發(fā)效率。
3.2 高校課程改革系統(tǒng)架構
??? 在高校課程改革管理系統(tǒng)的開發(fā)中,通過使用基于WebWork、Spring和Hibernate的J2EE輕量級集成框架,加載開源框架類,依據(jù)MyEclipse中的配置,打開數(shù)據(jù)庫連接,導入數(shù)據(jù)表的對象類和一些基本實現(xiàn)方法。特別是將存有高校專業(yè)課程的Excel表格中的數(shù)據(jù)較完整的導入數(shù)據(jù)庫中(本文使用SQL server 2000數(shù)據(jù)庫),以避免人為操作的失誤,同時也提高了工作效率,為以后對數(shù)據(jù)庫中存儲的“專業(yè)課程”數(shù)據(jù)進行預處理做好鋪墊,提高數(shù)據(jù)挖掘的準確性和真實性。課程改革系統(tǒng)架構如圖3所示。

?

?

??? 綜上所述,將 WebWork、Spring和Hibernate三種開源框架集成在一起,形成一種輕量級Web開發(fā)架構,該架構充分發(fā)揮三者的優(yōu)點,層次清晰,具有較高的伸縮性、可擴展性和可復用性,開發(fā)簡潔、維護方便。通過對J2EE集成開源架構的分析和研究,將其應用在高校專業(yè)課程改革管理系統(tǒng)的開發(fā)過程中,使Web項目的設計和開發(fā)中具有一定的優(yōu)勢和廣泛的應用前景。
參考文獻
[1]? LIGHTBODY P. WebWork in Action[Z].Manning Publications Co,2005.
[2]? RAIBLE M. Spring Live[Z].Source Beat Publishing,2004.
[3]? 閻宏. Java與模式[M].北京:電子工業(yè)出版社,2005.
[4] ?JOHNSON R. J2EE設計開發(fā)編程指南[M].北京: 電子工業(yè)出版社,2003.
[5]? ECKEL B. Java編程思想[M].侯捷,譯.北京: 機械工業(yè)出版社, 2002.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權者。如涉及作品內(nèi)容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。