999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于ESMSH框架的科研管理系統設計與實現

2020-04-09 04:48:53歐陽宏基葛萌王麗麗
計算技術與自動化 2020年1期

歐陽宏基 葛萌 王麗麗

摘? ?要:為了提高高等院校科研工作的效率,便于科研數據的統計與共享,提出了基于ESMSH框架的科研管理系統的實現方法。利用Easy UI構建表示層,通過Spring MVC實現控制層,利用Spring整合Spring MVC和Hibernate,利用Hibernate實現數據持久層。分析了架構的執行流程,闡述了系統實現的關鍵技術。實踐表明,ESMSH框架通過清晰的分層結構和松散的耦合,使系統具有較高的重用性和擴展性。

關鍵詞:科研管理系統;Easy UI;Spring MVC;Spring;Hibernate

中圖分類號:TP311? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?文獻標識碼:A

Design and Implementation of Scientific Research

Management System Based on ESMSH Framework

OUYANG Hong-ji?覮,GE Meng,WANG Li-li

(Computer College,Xianyang Normal University,Xianyang,Shaanxi 712000,China)

Abstract:In order to improve the efficiency of scientific research work in colleges and universities,and also facilitating the statistics and sharing of scientific research data,the paper puts forward the implementation method of scientific research management system based on ESMSH framework. it using Easy UI to construct representation layer,using Spring MVC to construct controller? layer,using Spring to integrate the Spring MVC and Hibernate.It analysis the execution process of the architecture and expoundes the key technologies of the system implementation. Practice shows that ESMSH framework lets the system has high reusability and expansibility through clear hierarchical structure and loose coupling.

Key words:scientific research management system;Easy UI;Spring MVC;Spring;Hibernate

高校的科研活動和科研能力是高校綜合實力的重要衡量指標,實現科研工作的信息化管理是高校數字化校園建設的重要內容之一[1]。目前高校科研管理工作主要采取兩種方式[2]:一種是手工處理,通過Excel、word 等辦公軟件或者簡單的數據庫采集系統來處理數據,此種方式對于學科門類多、科研項目與成果轉化數量多的高校而言,不僅給科研管理人員帶來繁重的工作量,并且造成科研管理人員和科研工作人員之間缺少必要和及時的溝通,導致信息在不同部門之間傳遞時失真且速度慢,最終難以反應本校科研工作真實情況。另一種是采用IT手段進行科研信息的管理,但是此種方式的科研項目管理系統多依賴固定的管理模式和各高校自己的業務管理方式,不具有靈活性、通用性和復用性。因此一套易于擴展、復用和靈活的科研管理系統對于解決科研管理工作的難題、提高工作效率就顯得非常重要。

提出了一種基于B/S架構的、符合Java EE規范的輕量級應用開發方案來進行科研管理系統的設計。該方案主要是利用目前業界流行的Spring MVC、Spring、Hibernate三大框架進行架構設計與實現。相對于傳統的基于EJB的Java EE開發方案,本方案具有以下特點:(1) 框架都是開源的,開發成本較低;(3)對應用服務器的依賴程度低,面向POJO的實現方式,使測試變得容易;(3)每個框架都是Java EE分層模式中某個具體層面的最佳實踐,利用Spring作為“橋梁”能夠無縫集成Spring MVC和Hibernate。(4)具有良好的擴展性、復用性和維護性。

1? ?系統總體設計

1.1? ?系統分析

通過對高等院校內部科研工作詳細的需求分析,依據實際工作情況,對其業務進行全方位的跟蹤分析,確定科研管理系統由:“項目管理”、“成果管理”、“人員管理”、“系統管理”、“信息公告”、“統計報表”等6大模塊。系統的角色包括:管理員、評審專家、校領導、二級學院領導、二級學院科研秘書、科研人員、項目組成員。通過系統能夠使項目申報、評審、立項、執行過程跟蹤、科研數據統計分析等流程自動化,實現科研管理工作的公平、公正性。部分角色的用例如圖1所示。

圖1? ?科研管理中的核心角色與用例

1.2? ?系統功能及用例

項目管理模塊包括:項目的添加、修改、刪除、審核、進度安排、結題等操作。科研成果管理包括論文、著作、獲獎、專利等管理。系統支持期刊庫的管理,教師錄入論文的期刊名稱時能自動匹配該期刊當年的級別,方便對論文進行積分統計。人員管理包括科研人員、評審專家、項目組成員的管理,權限、角色的分配。系統管理包括基礎數據的初始化、數據庫的備份和恢復、將當前數據庫數據導出為其他數據庫兼容的數據格式以及日志信息的管理。信息公告包括信息的發布、顯示、項目申報截止日期的設置等。統計報表包括對模塊按查詢數據的顯示與打印。

2? ?基于SMSH框架的系統架構

2.1? ?架構模型

以MVC模式[3]為基礎,整合輕量級框架Spring MVC、Spring和Hibernate,將輸入、處理、輸出流程按照視圖、控制、模型的方式進行分離,實現了表示層與控制層、業務邏輯接口與實現、DAO接口與實現、持久化對象與數據庫之間的解耦合,所形成的架構如圖2所示。其中,視圖部分由JSP頁面和Easy UI框架構成。Spring MVC充當控制功能,通過URL的映射規則將模型與視圖關聯起來,共同完成用戶請求。模型包括業務邏輯和數據持久化兩部分,由Spring、Hibernate以及領域模型對象共同完成。領域模型對象負責業務流程、狀態的處理、業務

圖2? ?基于MVC和SMSH框架的系統架構

規則的制定以及封裝不同層之間需要傳遞的數據等。Spring的IOC容器來管理領域模型對象及其之間的依賴關系[4],利用AOP方式將業務邏輯中的公共部分封裝成單獨的切面,用來實現權限驗證、事務管理、日志記錄等操作,有效地降低了應用組件之間的依賴性和應用程序各層的耦合度。持久化業務由Hibernate和DAO模式完成,DAO接口定義持久化對象的數據庫操作,DAO實現類依賴Hibernate API和映射文件實現持久化對象與數據庫的交互。

2.2? ?架構執行流程

架構的執行流程如下:

(1)客戶端通過視圖頁面輸入數據并向Web服務器發送HTTP請求。

(2)請求經過一系列的過濾器過濾后,由FilterDispatcher根據映射信息轉發到某個具體的Controller。

(3)Controller中的方法調用業務邏輯接口,業務邏輯接口的實現對象通過Spring IOC獲取。業務邏輯接口實現了控制層與業務邏輯層的解耦。

(4)業務邏輯接口的實現通過其依賴的BO對象完成具體的業務邏輯任務。業務邏輯接口的實現類和BO類需要通過Spring的配置文件或注解方式定義,將各自對象及其依賴關系 納入Spirng IOC管理。

(5)業務邏輯的實現類通過調用DAO接口將業務計算結果中需要保存到數據庫中的部分進行持久化操作。DAO模式將業務邏輯中持久化部分與非持久化部分解耦,使得具體持久化方式不會影響業務邏輯層的執行。DAO的實現類需要配納入Spring的IOC管理。

(6)DAO實現類封裝Hibernate的API來完成持久化對象與數據庫表的ORM映射。并利用Spring的AOP對事務進行管理。

(7)DAO的執行結果通過業務邏輯層返回給Controller,Controller根據結果來選擇某個視圖響應請求,從而完成一個客戶端與服務器的交互過程。

3? ?系統實現的關鍵技術

3.1? ?SMSH 架構的整合

SMSH架構整合的思路是:以Spring為核心,向下整合Hibernate完成數據持久化操作;向上整合Spring MVC完成控制邏輯,分離數據顯示與業務處理。本文采用XML配置文件+注解的方式進行框架整合和系統開發,其中基礎配置部分采用XML文件,包括Spring MVC、Spring、Hibernate的核心配置文件以及持久化類的映射文件。開發部分中的依賴關系采用注解,依賴關系體現在業務邏輯層對持久層的依賴、控制層對業務邏輯層的依賴。

Spring與Hibernate整合的具體步驟是:首先,定義Hibernate配置文件-hibernate.config.xml,完成SessionFactory的配置。配置項主要包括數據庫方言、SQL語句顯示、數據庫表結構生成策略、批量更新數目、批量獲取數目、查詢緩存、二級緩存和加載實體類映射文件等。然后,定義Spring配置文件applicationContext.xml,完成對Hibernate框架中SessionFactory對象的配置,具體包括加載hibernate.config.xml文件、創建C3P0數據庫連接池對象。

最后,在applicationContext.xml中創建聲明式事務管理器并注入所依賴的SessionFactory對象。

由于Spring MVC是Spring框架的一部分,所以Spring與Spring MVC整合只需定義spring-mvc.xml配置文件即可[5]。首先,定義自動掃描包,將注解定義的控制層組件納入IoC容器。然后,配置注解的處理器映射器和處理器適配器,配置內部視圖解析器對模型視圖名稱添加前綴和后綴。最后,配置文件上傳解析器。

3.2? ?控制器的實現

控制器(Controller)接受DispatcherServlet分配的任務,接收請求參數、調用Service組件執行業務邏輯并返回邏輯視圖數據。本文將Controller當作POJO對待,采用“非侵入+注解”的方式來實現[6]。在控制器類定義前添加@Controller,讓Spring把它當作控制器,通過@Autowired標識控制器所依賴的Service組件,在控制器的方法前添加@RequestMapping實現請求URL與控制器方法的映射;定義@RequestBody表示將請求的JSON格式數據轉換成控制器方法的形參數據類型;定義@ResponseBody表示將控制器方法返回值的數據轉換成JSON數據格式進行響應。

3.3? ?Service的實現

Service實現系統核心業務邏輯,包括Service接口和實現類兩部分。Service接口定義業務邏輯方法,向控制器提供調用接口;Service接口實現類依賴業務對象完成業務處理與數據計算,調用DAO組件完成持久化邏輯,如圖3所示[7]。

圖3? ?業務層類圖關系

以下項目管理模塊對應的Service實現類的部分源碼,其中利用@Service標識該類為Service組件,利用@Transactional表示該類相關方法使用事務,通過@Resource定義所依賴的Service和DAO組件。其中主要的業務方法包括:按年份、院系計算項目得分、按項目級別查詢項目信息、按院系、年份查詢申報的項目以及結題的項目信息、按主持人查詢項目、按參與人查詢項目等。

@Transactional

@Service(“scientificProjectService”)

public class ScientificProjectServiceImp extends BaseService

implements ScientificProjectService {

@Resource

private ScientificProjectDao scientificProjectDao;

@Resource

private AchieveIndexThreeDao achieveThreeDao;

@Resource

private TaskDetailService taskDetailService;

@Resource

private AchieveFinishDetailService achieveDetailService;

……………………

int getProjectsCountByDep(int depId);

int getProjectCountByLevel(int levelId);

long getProjectCountByDepAndLevel(Long depId,int levelId);

ArrayList findProjec(int depId,int year);

float getProjectScore(int depId,int year);

………

3.4? ?DAO的實現

DAO完成實體類與數據表之間的映射,每個實體類都有對應的DAO接口和DAO實現類,DAO接口中封裝該實體類的持久化邏輯并作為業務邏輯層的訪問入口,DAO實現類封裝Hibernate API具體實現持久化邏輯。設計了如圖4所示的DAO類圖關系(以項目實體為例),其中BaseDao是用泛型技術所定義的實體類DAO的父接口,其中定義了每個實體類都具有的CRUD操作;BaseDaoImp是BaseDao的實現類,通過由Spring所注入的SessionFactory獲取Hibernate的Session對象完成對數據庫的操作;HQLQueryUtil類根據Where子句、From子句、OrderBy子句和查詢參數等生成HQL語句并封裝分頁查詢所對應的實體對象集合;ProjectDao是項目實體類對應的DAO接口,其中定義了項目實體所特有的持久化方法;ProjectDaoImp是項目實體的DAO實現類。

圖4? ?持久層邏輯結構

3.5? ?領域模型的實現

領域模型根據實際業務需求由Java的各類業務對象組成,包括持久化對象(Persistence Object,PO)、業務對象(Business Object,BO)、值對象(Value Object,VO)、角色、權限、日志等。其中PO為持久層封裝被持久化的數據,BO為業務領域相關對象之間提供面向對象的表現,VO封裝不同層之間需要傳遞的數據。角色對象將用戶對象和權限對象分離,便于為不同類型的用戶分配不同的權限。日志對象記錄用戶操作系統的痕跡。

3.6? ?表示層的實現

表示層主要負責前端頁面的展示、接收用戶的輸入數據、發送請求到控制器以及顯示請求的響應結果。首先,創建JSP頁面通過Script標簽引入Easy UI對應的JS文件[8]。然后,利用CSS+Div進行頁面布局,利用Easy 控件定義數據的輸入和顯示。最后,創建JS文件完成相應Easy UI控件的編程,并以Ajax方式發送請求到Spring MVC的Controller。圖5展示了系統中科研秘書角色對科研項目進行審核的頁面,其中科研項目信息放在Easy UI的Datagrid控件中展示,頁面加載時調用JS文件中的相關函數,核心代碼如下所示。

$(“#dp_tb”).datagrid({

remoteSort:false,

sortName:'isChecked,startDate',

sortOrder:'desc,desc',

frozenColumns:[[

{field:'id',title:'編號',checkbox:'true',sortable:'true',align:'center'},

{field:“departmentName”,title:“單位名稱”,align:“center”},]],

columns:[[ {field:“title”,title:“項目名稱”,align:“center”},

{field:“pnum”,title:“項目編號”,align:“center”},

{field:“userName”,title:“項目負責人”,align:“center”},

{field:“levleName”,title:“項目級別”,align:“center”},

{field:“score”,title:“項目積分”,align:“center”,sortable:“true”},

{field:“founds”,title:“項目經費”,align:“center”,sortable:“true”},

{field:“startDate”,title:“起始時間”,align:“center”},

{field:“endDate”,title:“結束時間”,align:“center”},

{field:“isChecked”,title:“審核狀態”,align:“center”,sortable:“true”,

styler:function(value,row,index){

if(value == '已審核')

return 'color:green';

else

return 'color:red';

}},

{field:“isEnd”,title:“是否結題”,align:“center”,sortable:“true”,

styler:function(value,row,index){

if(value == '結題')

return 'color:green';

else

return 'color:red';

4? ?結? 論

高校科研管理系統是科研工作的信息化基礎設施和科研數據的存儲中心,它能夠為廣大教職員工提供快捷方便的信息服務,為管理人員提供統一的操作平臺,也是學院領導進行科研任務下達、分配的決策化輔助支持系統。以Easy UI、Spring MVC、Spring和Hibernate框架為基礎,設計并實現了一個滿足Java EE平臺的高校科研管理系統,經過實踐表明系統運行穩定、可靠,能夠滿足高校科研工作的基本需要。

參考文獻

[1]? ? 劉培華,董彩云,劉方愛.基于Struts 和AJAX 的項目報批系統的設計[J].濟南大學學報:自然科學版,2012,26(1):11—14.

[2]? ? 李秉鍵. 嘉應學院科研管理系統的設計與實現[D].重慶:重慶大學,2012.

[3]? ? 劉瓊.基于MVC架構的英語教學系統設計及應用[J].微型電腦應用,2018,34(11):107—109.

[4]? ? 盧肖霞.SSH框架在Web項目開發中的設計與實現[J].計算機測量與控制,2018,26(10):122—127.

[5]? ? 葛萌,黃素萍,歐陽宏基.基于Spring MVC框架的Java Web應用[J].計算機與現代化,2018,(8):97—101.

[6]? ? 歐陽宏基,李紅,宋笑雪.一種基于ES2SH 框架的Java EE 應用架構[J].實驗室研究與探索,2018,37(10):151—156.

[7]? ? 歐陽宏基,葛萌.基于S2SH框架的煤炭企業生產統計管理系統[J].計算技術與自動化,2015,34(3):118—122.

[8]? ? 苗杰.基于Easy UI框架與Spring MVC框架的權限管理系統的設計與實現[J].電腦知識與技術,2015,11(15):53—55.

主站蜘蛛池模板: 91毛片网| 亚洲第一页在线观看| 一本一本大道香蕉久在线播放| 日韩无码真实干出血视频| 夜夜操狠狠操| 国产SUV精品一区二区6| 日本欧美精品| 免费人成在线观看成人片| 素人激情视频福利| 美女国产在线| 亚洲av无码牛牛影视在线二区| 激情乱人伦| 国产真实自在自线免费精品| 无码福利视频| 国产噜噜噜| 日本国产精品一区久久久| 人人艹人人爽| 国产欧美在线观看视频| 久热中文字幕在线| 亚洲av无码久久无遮挡| 日韩黄色在线| 国产在线欧美| 亚洲精品动漫| 亚洲三级电影在线播放| 国产亚洲欧美日韩在线观看一区二区| 好紧太爽了视频免费无码| 911亚洲精品| 欧美成人a∨视频免费观看| 国产精品女主播| 久久综合丝袜长腿丝袜| 99热这里只有免费国产精品| 国产麻豆精品久久一二三| 五月六月伊人狠狠丁香网| 日本三级精品| 91精品国产91久久久久久三级| 国产综合另类小说色区色噜噜| 少妇人妻无码首页| 日韩天堂网| 尤物精品国产福利网站| 熟妇丰满人妻| 成人精品免费视频| 国产国产人在线成免费视频狼人色| 精品视频第一页| 欧美怡红院视频一区二区三区| 毛片网站观看| 亚洲国产91人成在线| 久久网综合| 茄子视频毛片免费观看| 欧美人人干| 久久婷婷人人澡人人爱91| 国产97视频在线| 欧美在线黄| 国产肉感大码AV无码| 亚洲黄色成人| 国产杨幂丝袜av在线播放| 日韩不卡高清视频| 亚洲中文字幕av无码区| 老司机久久精品视频| 日韩无码白| 日韩乱码免费一区二区三区| 人妻21p大胆| 看国产毛片| 国产白浆在线观看| 欧美人与动牲交a欧美精品| 狠狠色噜噜狠狠狠狠色综合久| 国产 日韩 欧美 第二页| 欧美激情视频在线观看一区| 亚洲精品午夜天堂网页| 激情無極限的亚洲一区免费| 全部免费特黄特色大片视频| 欧美日韩国产在线观看一区二区三区 | 免费又黄又爽又猛大片午夜| 国产成人精品优优av| 天天摸夜夜操| 人妻中文久热无码丝袜| 欧美午夜在线观看| jijzzizz老师出水喷水喷出| 中文字幕日韩欧美| 久久久精品久久久久三级| 欧美成人免费一区在线播放| 九九热精品免费视频| 香蕉综合在线视频91|