基于ESSH框架的高校科研团队信息管理系统设计与实现
作者:杨丰瑞 杜奎  姜赖赢
来源:《软件导刊》2017年第04
        摘要:针对当前高校院级学生信息管理系统不能满足其科研团队对学生科学、高效的信息化管理需求,依托Gradle构建工具整合当前最新主流框架EasyUIStruts开源oa系统源码SpringHibernate,运用经典MVC分层架构设计模式开发出了适合高校科研团队的学生信息管理系统。该系统下辖3个权限子模块:超级管理员模块、教师模块和学生模块。该系统在阿里云服务器平台和Windows服务器平台验证通过,目前已服务于重庆邮电大学通信新技术应用研究中心。
        关键词:EasyUIStrutsHibernateSpringRabbitMQ
        中图分类号:TP319
        文献标识码:A
        文章编号:167278002017004009403
        0引言
        高校科研团队是我国科研创新的主力军,也是勇攀科研高峰的先锋队[1]。一个科研团队的科研创新能力不仅与团队成员的学术水平息息相关,更与高效管理密不可分,在当前信息技术迅猛发展的今天,团队的科学高效管理离不开信息技术支撑[1]。但是经查证,在高校中只有少数国家级重点实验室才会有面向本团队研究生的信息管理系统,绝大多数高校对团队内部研究生的信息管理均是依托于研究生院的学生信息管理系统,这种院级学生信息管理系统以学校视角侧重于成绩、学籍与学位的管理,然而面向科研团队的学生信息管理侧重于促进科研团队的科研效率,其关注:导师发布公告、查看学生考勤与周报、导师推送学习任务、学生信息报表打印和助管、助研资格快速审查等核心需求。 针对这一缺陷,本文整合当前最新主流框架EasyUI1.4.5Struts2.5Spring4.2Hibernate5.1,运用经典的MVC分层架构设计模式开发出了适合高校科研团队的学生信息管理系统。
        1关键技术
        1.1EasyUI
        EasyUI是一组基于jQueryUI插件集合体,EasyUI可以帮助Web开发人员更轻松地打造出功能丰富并且美观的UI界面[2];另外开发人员不需要编写复杂的Javascript脚本,也不需要对css样式有深入的了解,他们只需要了解一些简单的html标签即可。EasyUI使用简单却很强大,相较于Bootstrapextjs等框架,其控件更加丰富,与浏览器的兼容性也更胜一筹,尤其是在企业级OA系统业务中,EasyUI优势更加明显。
        1.2Struts
        StrutsApache软件基金会(ASF)赞助的一个开源项目,它是JavaWeb应用中MVC分层架构的一个经典框架[3]。表单实例自动封装和是最为开发人员津津乐道的两个特性。 MVC分层架构中,对于大型Web应用,控制层通常由Action构成,模型层由JavaBean组件或者EJB组件实现;但对于小中型Web应用控制层和域模型层的角均可由Action扮演。
        1.3Hibernate
        HibernateJBoss旗下的一款优秀的ORM数据持久层框架,它能够将面向对象的域模
型层对象映射到关系型数据库中,这使得开发人员可以随心所欲地使用面向对象思维实现数据库增删改查(CRUD)操作。Hibernate不仅封装了丰富的数据操作方法,还提供了完善的事务管理机制[4]
        1.4Spring
        Spring开源框架是由Rod Johnson 在其著作Expert OneOnOne J2EE Development and Design中阐述的部分理念和原型衍生而来。Spring框架的主要优势之一就是其分层架构,为 J2EE 应用程序的开发提供框架集成环境[5]Spring的核心是依赖注入(DI)和面向切面编程(AOP)。
        1.5ESSH框架整合
        本系统是以MVC封层架构设计模式(模型层、视图层和控制层)展开,分层架构逻辑如图1所示。模型层、视图层和控制层的功能正是依托于EasyUIStrutsSpringHibernate框架。
        1.5.1模型层 模型层其内包含:域模型层、数据访问层和业务逻辑层。利用Hibernate
久层框架通过配置l将域模型层JavaBean对象映射到数据库对应的表中,数据访问层关联HibernateSessionFactory实例从而使用Session中的数据操作方法。 有一点要特别注意:为了保护数据原子一致性,对于业务逻辑层中涉及更新数据表的方法要将其置于事务管理器中。1.5.2视图层 Struts的自定义Action负责接收用户请求并跳转到登录、注册、回密码、面向学生系统、面向教师系统和面向管理员系统等页面。1.5.3控制层 本系统并没有涉及太多ActionAction之间的请求关系,所以在控制层中编写的自定义Action并不负责页面的跳转而是调用业务逻辑层中的方法。控制层、业务逻辑层与数据访问层之间的调用关系如图2所示。
        2系统设计与实现
        2.1系统功能设计
        本信息管理系统有3个子模块:超级管理员模块、教师模块和研究生模块,每个子模块对应不同的权限,每一级权限对应不同的服务。系统整体功能设计如图3所示。
        2.2数据库设计
        数据库是信息管理系统的核心,良好的数据库设计不仅可以改善数据存取效率,还会减少维护成本[6]。本系统采用MySQL关系数据库系统,它具有体积小、速度快、灵活性高、免费等优点[7]。通过分析信息管理系统的对象,设计了7张数据表:学生信息表、教师信息表、管理员信息表、学生考勤信息表、公告信息表、学生请假信息表和周报信息表。 所有数据表模型使用ProcessON构建,如图4所示。