APP下载

基于MVC模式的科研团队空间协同系统开发

2017-11-07李朕阮华

电子技术与软件工程 2017年17期
关键词:视图页面逻辑

文/李朕 阮华

基于MVC模式的科研团队空间协同系统开发

文/李朕 阮华

本文针对科研团队个性化系统的需求,设计和开发了一个采用MVC模式基于ExtJS+Spring+Hibernate框架的科研团队空间协同系统。论文详细阐述了系统的设计方案和技术框架,并以系统中公告管理模块为例具体描述了系统MVC模式的开发实现过程,其中,Spring负责业务逻辑,Hibernate构建数据持久层,ExtJS实现前台页面显示。结果表明,该科研团队空间系统开发框架层次分明,实现了页面显示与业务逻辑的高效分离,开发效率提高近20%,具有较高的灵活性、可移植性和扩展性,应用效果良好。

ExtJS Spring Hibernate 科研团队空间 MVC 开发研究

1 引言

科研单位每年会承担大量的科研项目和课题,这些项目以及它们之后的持续性研究锁积累的科研文档资料对科研人员的后续研究具有十分重要的价值。如何将它们进行高效管理,在研究团队内部实现交流和共享,很大程度上会影响项目组的工作效率。“科研团队空间系统系统”就是在这样的背景下提出的。在团队空间系统中,科研人员将建立起以项目为基础的研究团队,并在团队与团队之间、团队与科研人员之间实现信息与资源的管理、共享。

另一方面,Java EE框架在保留技术安全性、扩展性、平台无关性和可维护性优势的同时,弥补了传统开发平台显示、业务和数据的高耦合等问题,成为当前Web系统的主要解决方案之一。本文采用当前较为流行的Spring + Hibernate开源框架组合,再结合ExtJS作为与用户交互的前端,搭建一个高效的富Web应用软件开发框架—基于Ext+ Spring + Hibernate的科研团队空间系统开发平台,完成系统的设计和开发工作。

2 系统功能设计

依据科研团队工作的实际需要和系统的特点,科研团队空间可分为三大部分:团队空间业务、控制面板和系统管理。团队空间业务模块是系统的核心模块,主要包括团队导航、我的团队、创建团队、文档中心、协同写作、科研日志、团队资料、团队设定、公告通知等子模块;控制面板模块负责对个系统中的每个科研人员个人信息进行设置,包括个人信息、密码修改和站内短信中心等;系统管理模块负责对整个团队空间进行系统管理,包括团队分类管理、团队管理、日志管理、通知管理、文档资料管理、系统备份和系统还原功能。

图1:科研团队空间系统功能模块

3 系统技术架构

本文的系统在技术架构上采用ExtJS+Spring+Hibernate组成的开源框架,以MVC(Model-View-Control) 为 开 发 模式,结构上按业务功能分为表示层、业务层和数据持久层。开发环境选用功能完整的MyEclipse7.5;底层数据库为MySQL。

系统采用Spring 提供的MVC功能进行系统开发。MVC分别代表模型(Model),视图(View)和控制Controller),在MVC架构中,Model(模型)代表了应用程序的核心功能,它负责处理用户的数据,实现业务逻辑可用Spring这样的构件对象来处理业务;View(视图)是用户看到并与之交互的界面,它向用户显示相关的数据,并能接收用户的输入数据,但是它并不进行任何实际的业务逻辑;Controller(控制器)负责接收用户的请求和数据,接着它会做出判断将请求和数据交由哪一个模型来处理,最后调用视图来显示模型返回的数据。

4 系统实现

4.1 系统详细实现

4.1.1 搭建环境和数据库建立

在集成开发环境MyEclipse7.5搭建上述MVC框架(导入ExtJS、Spring、Hibernate包),应用前面构架的Spring MVC平台进行开发和系统实现。首先结合系统业务功能需求,在MySQL数据库中建立数据表。建表后,分别用Hibernate实现数据持久层(数据对象),用ExtJS实现表现层(前台界面),用Spring整合表现层、数据持久层和业务层,从而达到各个功能模块的目标。

4.1.2 数据持久层

首先需要完成数据持久层的实现:使用Hibernate实现对象关系的映射,建立数据库中与表的字段相对应的类,如公告管理模块在数据库中对应的表为公告管理表(sys_public_ post),因此建立SysPublicPost.java类,并建立表sys_public_post的映射文件SysPublicPost. hbm.xml,实现Hibernate的数据对象映射,从而可以在后面的业务逻辑工作中,直接操作映射出来的数据对象类,进行数据读取、新增、删除和编辑。

4.1.3 MVC模式开发—页面和业务逻辑

View--视图层:

在Spring MVC中,使用JSP作为网页显示文件,JSP文件中几乎没有Java代码,只有HTML/ExtJS代码,也就是说,JSP文件只作为视图(View)模板使用。其中,使用ExtJS来设计可实现重复使用的网页组件,并运用Spring进行页面逻辑呈现。

Controller--控制层:

Spring内建了一个MVC框架,以Servlet分发器为中心,将Web请求分发到各个不同的处理器进行处理。该Servlet就是Spring提供的DispatcherServlet,它必须在Web.xml里配置,同时可以配置多个DispatcherServlet,且每个DispatcherServlet都会加载和应用相关的xml文件。科研团队空间系统的Web.xml核心代码对servlet和servlet-mapping做了配置。

Model—业务模型层:

首先,依据业务功能需求定义业务逻辑类的接口方法ISysService,每个接口方法处理一项具体的业务需求,如添加、删除等;其次,依据特定的业务处理过程编写SysServiceImp实现类来实现ISysService中的接口方法。在接口实现过程中,若需要与数据层进行交互,则调用数据访问类DAO中的数据访问方法完成。若现有方法不能满足应用需求,则可依据实际情况编写新类继承DAO类,并在新类中添加所需的方法。每个SysServiceImp类都要实现setSysDao方法,用于将管理和调用数据访问类DAO的工作交由Spring框架来完成;最后,在ApplicationContext.xml中进行配置:为SysServiceImp类配置<bean>对象和注入数据访问对象。

可以看到,MVC架构的开发模式,使得系统将Java Bean抽象为模型层,JSP/ExtJS独立成为视图层。当用户登陆后对公告进行显示、新增、编辑、删除等操作时,JSP/ExtJS页面将控制权交给Servlet,Servlet将封装的HttpServletRequest、HttpServletResponse作 为参数传给Bean处理;Bean将处理结果放入HttpServlet-Response;Servlet再次获得控制权,将处理的结果交给ExtJS预处理器,最后完成组件的页面显示,该过程如图3所示。这样,系统的前端技术与后端技术不仅完全分离,客户端载荷也得到了简化。

4.2 系统实现效果

基于ExtJS、Spring和Hibernate的科研团队空间系统完整实现了1.1节所设计的模块功能,并顺利部署运行,具体实现效果如图2。

图2:系统应用整体效果图

4.3 系统性能

ExtJS前台框架与Spring、Hibernate技术的结合,在系统的开发和实际运行测试中,与同类型Java EE系统或Web系统比较,具有以下几个方面的性能优势:

4.3.1 页面显示与业务逻辑层分离

在Spring的MVC框架中,ExtJS有效地促进了从业务逻辑中分离出页面表现。开发人员可以将精力集中于模型层、控制层、数据层的设计以及进行复杂的数据封装和业务逻辑处理。在本系统的开发中,即做到了上述前台页面与后台业务逻辑的有效分离,同时,项目中开发的业务逻辑和实现类也可以为今后系统开发所用。因此,与同类的其它Web系统相比,本系统具有明显的可移植性和复用性优势。

4.3.2 丰富的客户端组件

本系统使用ExtJS前台页面显示,它免去了繁琐的CSS设置,换句话说,ExtJS可以通过简单的JavaScrip代码实现富客户端的用户体验,也避免了传统JSP/Html页面美工制作难且出力不讨好的矛盾。

4.3.3 模块化实现,缩短数据读写和操作等待时间

通过流行框架Spring、Hibernate和新兴ExtJS框架技术的结合,系统构建一个具有强适应的体系架构和全新快速用户体验的新一代网络应用。在实际应用测试中,由于采用了ExtJS+Sping+Hibernate的组合,系统的数据读取、写入和响应时间比其它同类型的Web系统短18%,获得了明显的数据交互效率提升。

5 总结

本文将基于ExtJS + Spring +Hibernate的MVC开发架构应用在科研团队空间系统开发中,由Hibernate构建数据持久层,Spring负责业务逻辑,ExtJS实现前台页面显示的模式有效地将页面和业务逻辑分离,达到提高开发效率,简化开发复杂度,实现富客户端全新体验的。开发结果表明,该系统开发层次分明,在与同类型的系统比较测试中,开发效率和运行速度提高近20%,具有良好的复用性、灵活性、扩展性和可维护性。

[1]孙卫琴.Java面向对象编程[M].北京:电子工业出版社,2006.

[2]孙卫琴.Tomcat与Java Web开发技术详解[M].北京:电子工业出版社,2009.

[3]林信良.Spring 2.0技术手册(第2版) (第二版)[M].北京:电子工业出版社,2010.

[4]Craig Walls, Ryan Breideabach. Spring In Action (李磊,程立,周悦虹译)[M].北京:人民邮电出版社,2006:253-269.

[5]高瞻,锁志海.基于Struts+Spring+ Hibernate框架的网络评比系统[J].微计算机信息,2010(26):179-181.

[6]惠 刚 ,付 超 .使 用 JSF、Spring、Hibernate开发web应用[J].微计算机信息,2008(24):188-190.

[7]徐会生等.深入浅出Ext JS[M].北京:人民邮电出版社,2010(05).

[8]涂翔云,姚欣,李春阳译.J2EE权威指南[M].北京:电力出版社,2003:68-72.

[9]刘晓华.J2EE应用开发详解[M].北京:电子工业出版社,2004:156-167.

[10]梁立新.项目实践精解:基于Struts-Spring-Hibernate的Java应用开发[M].北京:电子工业出版社,2006:272-304.

[11]孙卫琴.精通Struts基于MVC的Java Web设计与开发[M].北京:电子工业出版社,2004:189-203.

[12]杨振东.基于AOP和IoC的Ajax Web框架的应用研究[D].重庆大学,2008(10).

作者单位中国工程物理研究院科技信息中心 四川省绵阳市 621900

李朕(1983-),男,四川省绵阳市人。硕士学位。工程师。2009年硕士毕业,现在中国工程物理研究院从事信息技术研究,在国内外刊物上发表论文2篇,SCI、EI收录各一篇。

猜你喜欢

视图页面逻辑
刑事印证证明准确达成的逻辑反思
刷新生活的页面
逻辑
创新的逻辑
视图
Y—20重型运输机多视图
SA2型76毫米车载高炮多视图
网站结构在SEO中的研究与应用
浅析ASP.NET页面导航技术