大学生创新学分管理设计与实现研究
2017-06-14汪玲阮智张立涛田越
汪玲++阮智++张立涛++田越
摘要:针对高校大学生创新学分管理信息系统的建设需求,提出了基于Struts+Spring+Hibernate(SSH)技术架构的解决方法,并给出其在Web系统快速设计与开发中的具体实现过程。结果证明:采用SSH框架设计模式,不仅使系统层次结构更为清晰,而且显著降低了系统开发成本及模块之间耦合度。
关键词:创新学分管理系统;SSH框架;WEB框架
中图分类号:G4
文献标识码:A
doi:10.19311/j.cnki.16723198.2017.15.078
1引言
现阶段我国高校创新学分的管理尚处于纸质档案管理阶段,学分审核过程繁琐,为了减轻相关高校管理人员的工作,更加高效地管理毕业生创新学分资料,利用现代计算机和数据库开发技术,建立起完善的创新学分管理平台对于提高管理人员工作质量和效率、加强学生对自身资料管理的参与度、提高信息资源的利用率和管理水平都具有重要意义。
为了提高大学生创新学分管理的水平,我校基于SSH架构设计并开发了大学生创新学分管理平台。该平台的建立,不仅使教师管理员能及时获取相应的创新学分信息,而且也能满足多种对学分进行操作的需求;同时,各学科的学生可以提交创新学分变更请求,上传相关学分证明材料等,这样大大降低了管理成本,也提高了学分管理的效率。平台采用B/S结构以减轻对客户端的压力,同时为了简化系统的开发过程,增强系统的健壮性和可拓展性,系统采用了基于MVC模式的SSH技术框架。
2SSH技术框架
SSH是由Struts+Spring+Hibernate组成的一个集成框架,也是目前比较流行的一种Web应用程序开源框架,它分为表示层、业务逻辑层、数据持久层和域模块层。在该框架中,业务规则、数据访问及合法性校验等工作交由中间层处理,客户端可以通过组件与中间层建立连接,再由中间层与数据库交互,而不用直接与数据库进行交互,这不仅使得开发人员能在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序,而且也极大程度地提高了系统的可扩展性和可维护性。
2.1Struts
Struts是一个基于模型、视图、控制器的MVC应用框架,主要是采用Servlet和JSP技术来实现的。Struts把Servlet、JSP、自定义标签和信息资源(message resources)整合到一个统一的框架中,有效地减弱数据接口和业务处理逻辑之间的耦合。通过Struts框架,开发者可以创建基于各种标准技术(如JSP页、JavaBeans、资源包和XML)的可维护、可扩展并且灵活的Web应用程序,极大地节省了时间。
2.2Spring
Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架,用于对Struts和Hibernate进行管理。Spring通过IOC技术式将应用程序的配置和依赖性规范与实际应用程序代码分开,以实现业务模块的松耦合。同时Spring还提供了面向切面编程的丰富支持,直接将面向对象的编程功能集成到了Spring框架中,允许通过分离应用的业务逻辑与系统级服务进行内聚性的开发。极大地简化了错误处理,降低了编写异常代码数量。
2.3Hibernate
Hibernate是一個面向Java环境的对象/关系映射工具,将对象/关系模型中的对象映射到基于SQL的关系模型结构中。Hibernate不仅可以实现Java类到数据库表的映射,完成数据查询、获取数据及延迟加载等重要功能,而且它还提供了功能强大的查询语言(Hibernate Query Language,HQL),缩短了开发时使用SQL和JDBC处理数据的时间,降低了开发难度。
3系统功能结构及架构设计
3.1系统功能结构
创新学分管理系统按用户角色分为3个模块,即:学生模块、教师模块、系统管理模块。其中,学生可以完成创新学分申请的提交、学分证明材料的上传以及个人创新项目的查看;教师可以审核和下载创新学分证明材料、查看或导出自己所管理班级的项目资料;系统管理员拥有最大权限,可以管理学生信息和教师权限,并对项目规则进行增、删、改操作。
3.2系统架构设计
3.2.1WEB层设计
本系统采用Struts来实现后台与界面之间的交互。Struts的核心是多种功能的拦截器和过滤器,当学生提交自己参与的创新学分项目资料的时候,拦截器会自动把提交的信息封装到开发者指定的JavaBean里面,相比于传统的方式需要开发者手动封装,极大提升了开发效率。对于学生提交的信息进行保存之后,Struts只需要根据返回的结果在Struts.xml核心配置文件,匹配结果跳转到对应的事先配置好的页面,而传统的Servlet需要通过硬编码的方式指定跳转页面,这样不仅使得页面地址路径和代码紧耦合,同时不利于后期维护或者扩展,而在使用Struts框架,开发者只须对Struts.xml进行相应的调整和修改。这种管理页面逻辑的方式在系统前期的开发过程和后期的维护与升级阶段都显示出了极大的便捷性和有效性。
在创新学分系统中,学生可以查看自己所上传的项目,提交新的项目,删除不合格的项目,而这些业务对应的页面跳转,数据库操作,通过简单的配置文件紧密的联系在一起,但是又可以灵活的进行变更和管理,Struts.xml配置文件部分内容如下:
class="com.adou.createScore.action.StudentAction"method="{1}">
result
studentAction_toshowMyProPage?p_id=${p_id}
3.2.2业务层设计
业务层借助Spring,通过依赖注入、AOP应用及IOC等技术,有效地弱化了业务组件的耦合关系,提高了系统的可扩展性。Spring主要负责应用程序业务逻辑处理、业务校验、事务管理及业务层的对象依赖关系管理,它使得业务逻辑层和数据持久层之间增加了一个灵活的机制,减少了系统变更时的工作量。
当管理员导入学生的信息的时候,业务层AdminServiceImpl类直接使用通过Spring注解方式注入的持久层的MajorInfoDao,不需要显示实例化,这样既使层与层之间联系在一起,但是之间却没有耦合在一起,当需要更换持久层,不需要更改业务层代码;执行数据库操作需要开启事务,而Spring框架AOP模块对事务进行了良好封装,开发人员只需要在配置文件里面配置,不再需要开发人员手动在业务层每一个方法里面写类似的代码,很好增加了代码的重用性。
AdminServiceImpl中部分注解代码如下:
public class AdminServiceImpl extends BaseServiceImpl
@Resource
private MajorInfoDao majorInfoDao;
}
3.2.3持久层设计
传统的持久层设计需要开发人员通过硬编码的方式连接数据库,编写SQL语句,转换Java对象和数据库表的结构映射,产生大量重复的代码,而且硬编码的方式操作数据库,不利于后期对于系统的持久层更换数据库,更改数据表。因此本系统采用市面上流行的ORM框架——Hibernate,Hibernate框架通过配置文件方式处理Java对象和数据表之间的映射,不再是硬编码的方式,不仅减少之间手动的转换的代码,同时提高了灵活性;Hibernate框架提供HQL语法,开发人员可以站在面向对象的角度写HQL语句,Hibernate框架底层会帮助开发人员把HQL语句转化为系统正在使用的数据库的SQL语句。相比于传统方式,当改变数据库种类的时候,不需要更改持久层任何代码。
在创新学分系统中,一个项目类Project对应数据库中的项目表project,这两者之间通过Project.hbm.xml配置文件产生映射关系,配置文件中,包含了项目名称、项目内容、项目完成时间、项目审核状态等属性字段信息。以下是Project.hbm.xml配置文件中部分代码以做说明:
4結束语
本文结合创新学分管理系统的开发,详细介绍了在系统实现过程中SSH技术实现框架以及MVC设计模式的核心和优势。实践表明,采用SSH框架设计模式可以很好地实现了WEB层、数据层和业务层的分离,使系统层次结构更为清晰,显著降低了开发成本及模块之间耦合度,提高了开发效率和系统的可扩展性,整个系统使得创新学分管理工作水平和效率得到了极大的提高。
参考文献
[1]李润求,孙亚鹏,施式亮等.创新与技能学分管理系统的设计与实现[J].中国教育信息化,2014,(13):4951.
[2]张文梅.基于SSH的实验室管理系统设计与实现[J].电脑知识与技术,2016,(13):105106+109.
[3]冯润民.基于SSH的高校学生管理系统设计与实现[J].计算机工程,2009,(06):280282.
[4]李雷孝,刘晓军,刘利民等.基于SSH整合框架的科研项目管理系统的设计与实现[J].内蒙古农业大学学报(自然科学版),2012,(01):210214.