轻量级开发模式在企业级电子商务系统的应用

2016-03-28 02:39陈沁华
无线互联科技 2016年17期
关键词:表示层客商配置文件

陈沁华

(邢台钢铁有限责任公司,河北 邢台 054000)

轻量级开发模式在企业级电子商务系统的应用

陈沁华

(邢台钢铁有限责任公司,河北邢台054000)

针对邢钢电子客商服务系统的客观需求,笔者通过对多种开发框架进行比较,最终选择了Spring+iBatis 2.0这种轻量级的开发模式组合进行系统开发,文章分析了如何将客商服务系统的客观需求同Spring框架有机结合起来,以完成系统的整体设计过程。通过对系统整体的框架结构的分析,展现了采用Spring+iBatis这种开发模式进行设计的优点。

轻量级;开发;Spring;框架

邢钢客商服务系统是基于邢钢原ERP-NC(集团应用信息化管理)系统而开发的电子商务系统,以弥补邢钢原ERPNC系统仅限于在邢钢内部的业务人员使用,由于系统是基于原ERP系统进行项目化二次开发,所以必须在原有系统数据结构下进行,所以面临着开发框架及相应技术选择与运用的一些问题。

相对成熟的Spring作为一个轻量级的架构解决方案,在对程序产生最小侵入性的同时,使开发者通过简单可行的解决方法来解决问题;ibatis作为半自动化的数据持久层,为开发者提供灵活快捷数据访问途径。基于系统的需求和客观条件,综合考虑上述因素,选择Spring+iBatis开发邢钢客商服务系统是可行的,而且基于企业级的开发也是一个摸索和创新的过程。

1 系统框架的设计过程

当前,在进行J2EE平台的Java Web相关开发的最常用到的开发框架的组合模式就是Struts+Spring+Hibernate,也就是俗称的“SSH”。其中,就层次结构而言,持久层使用Hibernate进行数据库相关操作,业务逻辑层使用Spring,而Struts代表了表示层使用Struts的MVC结构[1]。

从开发的角度来看,Struts进行系统开发是最稳妥的选择。但Struts也受到了前所未有的挑战。目前,新兴的MVC框架从性能上讲已经超过了Struts,如SpringMVC,Webwork2。这些框架设计更精密,扩展性更强,适用性更广。所以说,从历史遗留问题和开发人员的偏好来讲,在表示层使用Struts是当今Web开发的“潮流”。但是,如果从技术和发展趋势角度来看,Spring MVC,Webwork2这些新兴的MVC框架更适合于框架的构建。因此,基于这个原因,客商服务系统在表示层并没有使用Struts,而是选择了Spring MVC[2]。

Hibernate/OJB会根据制定的存储逻辑,自动生成对应SQL并调用JDBC接口加以执行,程序员甚至不需要对SQL的熟练掌握,Hibernate的O/R Mapping实现了POJO和数据库表之间的映射,以及SQL的自动生成和执行,使Hibernate对数据库结构提供了较为完整的封装[3]。

iBatis并不会为程序员在运行期自动生成SQL执行,具体的SQL仍需要程序员编写,然后通过映射配置文件,将SQL所需的参数,以及返回的结果字段映射到指定POJO,而iBatis的着力点,则在于POJO与SQL之间的映射关系。

系统之所以放弃Hibernate而使用iBatis,原因就在于iBatis可以给开发带来更大的自由性。因为系统属于二次开发,系统数据处理量巨大,性能要求极为苛刻,那么iBatis的灵活性将比Hibernate更适合。此外,由于无法对数据库结构做到控制和修改一个查询可能要关联十几个表,并产生大量的数据,这意味着我们必须通过经过高度优化的SQL语句(或存储过程)才能达到系统性能设计指标。在这种情况下iBatis会有更好的可控性和表现。

2 客商服务系统的实现过程

2.1Spring配置文件

Spring的核心是IoC机制,其框架的构建是通过完成其配置文件的bean而实现的。Spring的各个配置文件分别对应Web体系结构的不同层次,例如,Web.xml是Spring的入口配置文件,onfig.xml对应表示层相关配置,application Context.xml是业务层的配置信息,data Access Context.xml是与持久层相关的。

2.2基类

系统的基类实现主要包括控制器基类Default Secureity MultiAction Controller,逻辑层基类Default Logic,以及VO基类Abstract Form Bean。所有功能点的控制器,逻辑层业务类,以及VO类都要继承它们。其中,控制器基类和VO基类都是抽象类,主要的业务流程框架在其内部定义,每个功能点的相应的类都要继承它们,并实现它们的抽象方法,从而实现模板方法模式,相关的业务框架放到基类中去实现。这样就可以保证所有的功能点的控制器和VO的操作流程都是一致的,使开发人员不用去关心具体操作是怎么进行的,减少了开发人员开发功能点的工作量。

2.3功能点实现

每一个功能点一般都由6个包构成,分别为:(1)controller:功能点控制器包,包里有个控制器类;(2)logic:业务逻辑层包,包里有个业务逻辑类;(3)VO:VO包,包里包含一个或多个变更指令(Variation Order,VO)类;(4)check:页面check包,包含页面check类;(5)config:页面配置信息包,包含一个或几个页面配置信息文件,页面绘制器通过读取这个文件进行页面绘制;(6)map:iBatis的SQL语句配置信息。

2.4系统结构

在开发工作中,我们将系统按照请求的处理过程分为4个层次,JSP Page层,Controller层,Logic层和Dao层。

JSP Page层是数据展现层,是与用户进行会话、传递请求、展示数据;Controller层处理用户的请求、如处理该请求需要的操作包含业务操作或数据库操作则去后面两层中进行处理,否则返回。另外系统在本层中进行了权限控制、日志记录等操作,使得开发人员不必考虑这些问题,体现了Spring的优点。Logic层进行业务操作,类似NC的BO。Dao层进行数据库操作,类似NC的DMO,在此处使用了iBatis来实现持久化操作,使得对数据库的操作简单化。

3 结语

结合邢钢电子客商服务系统的客观需求,通过将已有的多种开发框架进行比较,最终选择了Spring+iBatis 2.0这种轻量级的开发模式组合进行系统开发。Spring是全面的和模块化的。Spring有分层的体系结构,这意味着开发人员能选择使用它孤立的任何部分,它的架构仍然是内在稳定的,作为一种较新的J2EE平台Java Web开发的框架,Spring框架和对象关系映射(Object Relational Mapping,ORM)工具iBatis对典型的Web应用的分层体系结构有较好的支持。对于开发人员来说,既可以选择Spring framework提供的某个模块进行工程的开发,也可以使整个工程都使用Spring进行开发,以减少开发人员对各种不同框架的再学习和适应过程。通过对Spring的IoC机制,面向切面编程(Aspect Oriented Programming,AOP)的特点进行分析描述,结合Web应用的分层结构,就Spring框架提供的表示层的MVC框架,业务层的事务管理机制,以及持久层的与其他ORM工具的无缝结合的分析,展现了Spring的强大之处[4]。

[1]JOHNSON R.Spring框架高级编程[M].北京:机械工业出版社,2006.

[2]李刚.Spring, Struts, Webwork2三者MVC比较[EB/OL].(2016-09-10)[2005-08-03].http://www.csdn.net/.

[3]李刚.轻量级J2EE企业应用实战-STRUTS+SPRING+HIBERNATE整合开发[M]. 北京:电子工业出版社,2007.

[4]林信良.SPRING 2.0技术手册[M].北京:电子工业出版社,2007.

Application of lightweight development pattern in the e-commerce system of enterprise

Chen Qinhua
(Xingtai Iron and Steel Co., Ltd., Xingtai 054000, China)

In view of the objective demand of electronic merchant service system of Xingtai steel, through the comparison of many kinds of development frame which had carried on, author fnally choosen the Spring+iBatis 2.0 this kind of lightweight development pattern combinations to carry on the system development.The paper analyzed how to combine the merchant service system's objective demand with the Spring frame organic synthesis to completed the overall design process of system. Through the analysis of whole portal frame construction of system, unfolded the merit of using the Spring+ iBatis this kind of development pattern to carry on the design.

lightweight; development; Spring; frame

陈沁华(1972— ),男,湖北大冶,本科,工程师;研究方向:企业电子商务信息系统设计与开发。

猜你喜欢
表示层客商配置文件
忘记ESXi主机root密码怎么办
第四届世界客商大会在梅州开幕
这一瓶
打印机设置
ASP.NET三层构架解析
基于SSH框架科研管理系统的设计
意外收获