宋成明,李彥軍
(山西大學商務學院 信 息工程學院,太原 0 30031)
教師考核是各大院校管理工作的重要組成部分。現(xiàn)有考核方法的缺點是[1]:教師必須回憶本學年在教學、科研等各方面工作的完成情況,手工填寫各項內容。并計算出工作量標時、綜合記分等,這項工作十分繁瑣且容易出錯,各部門的審核難度大,消耗大量的人力,難以實現(xiàn)部門之間的信息共享與溝通。
采用輕量級框架技術,可以快速構建教師考核系統(tǒng)[2]。使得對教師教學科研等各項工作的量化考核方便快捷。教師在客戶端可隨時輸入自己已經完成的工作數(shù)據(jù)(如:發(fā)表的論文題目,作者排名,出版物),由系統(tǒng)按學校的考核辦法自動計算出應該獲得的考核積分。
輕量級Java EE軟件架構主要由主流的開源框架Struts2、Spring、Hibernate根據(jù)其各自的應用特性進行整合而成,選擇以Spring框架為核心并整合Struts2和Hibernate的框架組合。
Struts2是實現(xiàn)了MVC模式的框架,Struts2將一個Web系統(tǒng)的程序分為模型、視圖和控制器3個部分。模型由JavaBean、EJB等組件構成;視圖由JSP文件、POJO對象組成;控制器由Action來實現(xiàn)。
Spring 框架是一個開源且基于POJO 的輕量級J2EE 應用框架,它是為了解決企業(yè)應用程序開發(fā)復雜性而創(chuàng)建的。Spring是一個以依賴注入(DI)原則和面向方面編程思想(AOP)為基礎的輕量級框架。
Hibernate本質上是一個面向Java開發(fā)環(huán)境的O/R數(shù)據(jù)庫映射工具。借助于Hibernate的O/R技術,可以非常輕松地將以面向對象思想封裝對象的各個狀態(tài)映射到基于SQL的關系模型數(shù)據(jù)結構中去。
根據(jù)系統(tǒng)應用功能需求,將教師考核系統(tǒng)設計為成果管理、人員管理、院系考核、考核管理、報告管理和系統(tǒng)管理模塊,通過這6個功能模塊,達到系統(tǒng)的要求。
(1)成果管理:各項教學科研成果的錄入,科研處對成果進行審核、評定。
(2)人員管理:對本院系教職工信息管理。
(3)院系考核:院系考核組人員查看本院系教職工的考核信息,并對隸屬于該院系的教職工進行院系內考核,形成初步考核結果。
(4)考核管理:包括制定與修正考核細則、發(fā)布考核事項。其中,學??己私M成員可對院系考核結果進行審核,形成最終考核結果。
(5)報表管理:包括人員考核信息報表、成果統(tǒng)計報表、院系考核結果報表、學校審核報表。
(6)系統(tǒng)管理:包括院系機構管理、系統(tǒng)用戶組管理、基礎數(shù)據(jù)管理。
本系統(tǒng)基于Java EE 平臺開發(fā),采用MyEclipse6.0 為開發(fā)工具、SQL Server為數(shù)據(jù)庫系統(tǒng)、Tomcat 為Web 服務器。參照了Java EE 分層設計模型,將整個系統(tǒng)設計分為持久、業(yè)務邏輯層和表現(xiàn)層[3]。這種分層方式使整個系統(tǒng)變得更加清晰,切入點的分離使得每個部分的責任獨立,層與層通過接口的方式通信,這也遵循了針對接口編程的原則。教師考核系統(tǒng)架構如圖1。
圖1 教師考核系統(tǒng)軟件架構圖
教師考核系統(tǒng)軟件架構平臺中采用了如下的整合策略:
(1)Struts2中的Action和數(shù)據(jù)邏輯層的數(shù)據(jù)操作bean交由Spring容器來管理,在Struts2中采用偽Action來替代真實的Action,真實的Action位于Spring容器中。
(2)層與層之間通過DTO進行數(shù)據(jù)傳輸。
(3)業(yè)務邏輯bean與數(shù)據(jù)訪問bean中的POJO對象由Spring注入。
(4)數(shù)據(jù)訪問bean僅針對POJO對象操作,而POJO對象與數(shù)據(jù)庫中數(shù)據(jù)的映射、數(shù)據(jù)的關系邏輯及數(shù)據(jù)的持久化工作由Hibernate來實現(xiàn)。
持久層的目標是為系統(tǒng)提供一個統(tǒng)一、安全、并發(fā)性良好的數(shù)據(jù)持久化機制。它能有效降低業(yè)務層和數(shù)據(jù)層的耦合程度,使得開發(fā)者更加專注于構建業(yè)務模型和實現(xiàn)業(yè)務層的業(yè)務邏輯。本系統(tǒng)采用Hibernate作為持久層的ORM 框架,并且使用數(shù)據(jù)訪問對象(DAO)模式。部分代碼如下:
在業(yè)務邏輯層,我們使用了Spring框架,它不僅可以很方便地組織業(yè)務邏輯,還可以在事務管理、AOP等很多層面上發(fā)揮作用。在本系統(tǒng)中,采用setter依賴注入的方式,利用IOC容器,可通過XML的方式很容易地組織bean。
我們在業(yè)務層主要完成下面2 項工作。
2.4.1 在applicationContext.xml中配置事務
為了避免在業(yè)務邏輯層中重復編寫大量的事務處理代碼。我們在教師考核系統(tǒng)中,把事務管理定義在transactionManager配置上,這樣開發(fā)人員只須關注業(yè)務邏輯,而將事務管理完全交給配置文件,這樣做的好處是既節(jié)約開發(fā)時間又可以提高開發(fā)效率。配置文件applicationContext的部分配置如下:
2.4.2 結合Spring 和Hibernate
利用Spring 和Hibernate的整合,使得業(yè)務邏輯層僅需要通過持久層來訪問底層數(shù)據(jù)。而且,由于使用了IOC,業(yè)務層不需要自己成生DAO,僅需要聲明DAO類型。DAO的具體實現(xiàn)類型在Spring的XML文件中配置,這樣就更加有效地降低了業(yè)務層和持久層的耦合。任何組件都可以最大程度地得到重用。當我們開發(fā)一個業(yè)務邏輯組件時只需要使用setter 方法進行依賴注入,便可輕松實現(xiàn)組件間的引用。
2.5.1 表現(xiàn)層的流程設計
基于Struts2 MVC 的表現(xiàn)層架構模型如圖2。
圖2 基于Struts2 MVC 的表現(xiàn)層架構模型
圖2 描述了Struts2架構中的模型、視圖和控制器。
(1)從圖2中可以看出客戶端提交一個(Http-ServletRequest)請求,請求先后被提交到一系列(主要是3層)的過濾器,如ActionContext-CleanUp、其他過濾器(SiteMesh等)、 Filter-Dispatcher。
(2)FilterDispatcher是控制器的核心,就是MVC的Struts2實現(xiàn)中控制層(Controller)的核心。
(3)FilterDispatcher判斷ActionMapper是否需要調用某個Action來處理這個(HttpServlet Request)請求。
(4)一旦Action執(zhí)行完畢,根據(jù)struts.xml 中的配置,轉到對應的結果視圖。
MVC 模式把應用分為輸入、處理、輸出3部分,從而減弱了Action控制類和業(yè)務邏輯接口之間的耦合。
2.5.2 表現(xiàn)層的實現(xiàn)
限于篇幅,這里只給出與添加考核細則頁面相關的QualifyItemAction 類的部分實現(xiàn):
public String createQualifyItem () {
qualifyItemBLO.create(item);
return SUCCESS;// 添加成功!
}
從以上代碼可以看出,表現(xiàn)層中的數(shù)據(jù)表示是Action類的中對象屬性,表現(xiàn)層與業(yè)務邏輯層進行通信時使用POJO 進行。
教師考核信息化是學校信息化進程的戰(zhàn)略步驟之一,其質量對以后的信息整合工作有著較大影響。本系統(tǒng)集成Struts、Spring和Hibernate 3種框架技術,快速實現(xiàn)了一個B/S結構的教師考核系統(tǒng)。簡化了系統(tǒng)的開發(fā)、管理與維護,提高了開發(fā)速度,有利于系統(tǒng)的集成和擴展。
[1]秦 鋒. 基于Web技術的教師考核系統(tǒng)的實現(xiàn)[J]. 安徽工業(yè)大學學報,2003,20(3):119-223.
[2]楊興春,譙 石,董 文,等. 基于輕量級J2EE構架的高校教務管理系統(tǒng)的設計與實現(xiàn)[J]. 計算機系統(tǒng)應用,2007(3):42-43.
[3]Spring Framework Organization. The Spring Framework -Reference Documentation version 2.5[EB/OL]. 2008-10-31.http://static.springsource.org/spring/docs/2.5.x/reference/index.html
[4]張 俐,張維璽. 基于JavaEE的固定資產管理系統(tǒng)的設計與實現(xiàn)[J].計算機工程與設計,2009,30(16).