CRM系统:基于SSH的整合架构及其在CRM中的应用
3. 2 CRM系统中架构整合
为了充分体现基于B/ S 结构的CRM 系统优势,采用分层思想[6 ]的整合架构。如图1 所示,表示层
采用St rut s 框架,业务层采用Spring 框架,持久层采用Hibernate 框架,3 层之间的操作对象由域对象层
封装。运用此系统结构,系统质量和性能更有保障,层与层之间耦合度降低,代码重用率增加。
表示层:该层借助了St rut s 来实现,使用St rut s 的ActionServlet 做MVC 模式的控制器,实现业务逻
辑、动作处理、链接转向。利用ActionForm 接收页面的输入数据,使用Action 调用相应的业务处理逻辑
进行处理,并反馈结果。用户操作界面,则借助J SP 和St rut s 标签来呈现。
业务层:该层是由St rut s 的控制组件ActionServlet ,ActionMapping ,Action 和业务逻辑类J avaBean
来实现的。J avaBean 封装了与数据持久层的交互关系,以实现所有的业务逻辑。该层借助了Spring ,通
过依赖注入、AOP 应用、面向接口编程,来处理应用程序的业务逻辑和业务校验,事务管理等功能。从
而降低业务之间的耦合性,有利于系统功能的扩展和增强系统的维护性和通用性。
数据持久层:该层通过运用OR 工具Hibernate 进行关系数据库与对象进行关联,把对数据库表的
操作转变为直接对对象的操作,开发中与数据库进行数据交互主要可以归为CRUD(添加、读取、修改、
删除) ,这些操作占据了系统开发中大部分的时间,同时还需要考虑与数据库交互的性能问题,如连接
池、数据缓存等等。数据持久层主要利用Spring 结合Hibernate 来构建,其设计目标是为整个项目提供
一个高层、统一、完全和并发的数据持久机制。
域对象层:该层通过域对象来封装业务对象,而域对象层就是域对象的集合。借助Hibernate 将一
个个的域对象映射为数据库中的数据表,就能使得最底层的关系型数据库表结构被面向对象模型所隐
藏。另外,由于面向对象设计方法中类的可继承性,采用继承树对应一个表的策略使得该映射策略极易
扩展,并且能够将一个复杂的数据表转化成若干简单的域对象来表示,提高了系统的可维护性和可修改
性。
3. 3 整合架构的应用
请求(Request) 和接受响应(Response) 。表示层引入St rut s 控制分发请求,根据St rut s ActionServlet 接
受到的Request 委派相应的Action ,Action 只负责向业务层传递参数和指定调用业务逻辑的Service ,管
理服务组件的Spring IoC 容器负责向Action 提供其所指定的业务模型(就是系统的Service) 组件,在业
务逻辑Service 层,根据具体的业务逻辑要组装不同的DAO(数据访问对象) 来完成一个业务模块功能,
即Service 中每个方法对应一个业务逻辑,而每个业务逻辑的实现是由不同的DAO 组装起来协同实现的。
下面以公共用户模块中的企业新闻系统部分来说明这种St rut s + Spring + Hibernate 整合框架在
CRM 系统中的具体实现。企业新闻系统主要是完成管理员对企业新闻的管理,例如添加企业新闻、删
除企业新闻以及为其指派相应的访问权限等。例如系统管理员登录系统后,进入企业新闻管理界面,如
果要增加一条企业新闻, 则输入要发布的新闻信息提交后, 通过St rut s 调用AddNewsAction 的
execute () 方法,此方法再调用业务层的Service 接口的实现类,再由该实现类调用相应的DAO 接口的实
现类,该实现类则封装了通过Hibernate 访问具体表获取持久化对象的CRUD 操作。例如实例中的
DAO 实现类中的addNews (News news) 操作。采用了Spring 对St rut sAction 的接管,以下给出Spring
的applicationContext . xml 配置文件部分代码段:
< beans >
< bean name =“/ AddNewsAction”
class =“news. action. AddNewsAction”
singleton =“false”>
< property name =“newsServices”>
< ref local =“newsServices”> < / ref >
< / property >
< / bean >
< bean id =“NewsServices”
class =“news. bo. NewsServicesImpl”
singleton =“false”>
< property name =“newsDAO”>
< ref local =“NewsDAO”> < / ref >
< / property >
< / bean >
< bean id =“NewsDAO”
class =“news. dao. NewsDAOImpl”
singleton =“t rue”>
< property name =“sessionFactory”>
< ref local =“SessionFactory”/ >
< / property >
< / bean >
< / beans >
ApplicationContext . xml 作为Spring 的配置文件,它与St rut s 框架整合使用的是全权委托模式,而
与Hibernate 框架整合则使用的是内置支持,并且利用AOP 的动态代理来完成事务管理的工作。与
St rut s 框架的整合将为每个Action 请求进行代理式的创建,并为每个Action 请求注入具体的业务逻辑
实现。从以上代码中可以看出,Spring 为AddNewsAction 类注入了具体的业务逻辑实现。
st rut s2config. xml 作为St rut s 的配置文件将St rut s 与Spring 集成, 采用插件的方式, 即采用
ContextLoaderPlugin 插件,要配置这个插件,需要在st rut s2config. xml 配置文件中plug2ins 部分的底端
加入如下部分:
< plug2in className =“org. springf ramework. web. st rut s. ContextLoaderPlugIn”>
< set2property property =“contextConfigLocation”
value =“/ WEB2INF/ classes/ applicationContext . xml”/ >
< / plug2in >
配置好插件以后,就可以使用Spring 来管理Action。因此,对于St rut s 的配置文件st rut s2config.
xml 不再使用自定义的Action 类来配置Action ,而是采用Spring 提供的org. springf ramework. web.st rut s. DelegatingActionProxy 类来配置所有Action。它同样是org. apache. st rut s. action. Action 的一个
子类,它将把调用请求转交给真正的Action 实现。
在St rut s2config. xml 配置文件中的关于增加系统用户action 的配置如下:
< action path =“/ AddNewsAction”
input =“/ news/ showNews. jsp”
type =“org. springf ramework. web. st rut s. DelegatingActionProxy”
name =“NewsActionForm”
parameter =“methode”
scope =“request”
validate =“t rue”>
< forward name =“success”path =“/ news/ showNews. jsp”> < / forward >
< / action >
以上将该整合架构运用于CRM 系统的设计与应用,实现了系统管理员模块的功能。从而证实了
该整合方案在B/ S 结构的CRM 系统开发的可行性,并且具有一定的优势。
4 结 语
好的设计模式和成熟的框架技术不仅可以降低开发成本提高开发效率,更重要的是能够大幅度的
提高软件开发质量。本文针对CRM 系统开发的需求,采用基于St rut s、Hibernate 和Spring 的整合框架
设计方案,该方案的优势在于:1) 通过采用St rut s 的设计充分地体现了MVC 的架构,其维护起来会非
常方便;2) 采用Hibernate 实现对象关系映射,把面向对象的设计开发与关系数据库联系起来,优化了共
享平台的数据层设计;3) Spring 模式进一步加强中间层的设计,强化元数据管理模块,更好地实现以
XML 为基础的事务管理。4) 3 种框架的整合方案,实现了Web 应用的分层,充分发挥3 种框架各自的
优势,实现多层开发的低耦合。使得基于此整合框架开发的B/ S 结构的CRM 系统具有更好的扩展性、
可维护性,它必将成为开发基于B/ S 结构的CRM 系统的一个有力的解决方案。
参考文献:
[1 ] 李耀刚,王进华. B/ S 结构CRM 系统的设计开发[J ] . 内蒙古科技与经济, 2007 (9) :74275.
[2 ] 孙长明,余立建. 基于Hibernate + Spring + Struts 的Web 应用开发框架[J ] . 铁路计算机应用, 2007 ,16 (3) :31233.
[3 ] 方 霞. 基于Struts 框架的电信CRM 客户关系管理系统的设计[J ] . 电脑学习, 2008 (3) :13214.
[4 ] 张 琛,吴 跃,邱会中. 基于Struts + Spring + Hibernate 的整合架构及其在电信业中的应用[J ] . 计算机应用,
2006 ,26 (12) :2652266.
[5 ] 李 磊,程 立,周悦虹. Spring in Action 中文版[M] . 北京:人民邮电出版社, 2006 :7236.
[6 ] 雷君虎,王苏卫. 基于SSH 的本科教学评估辅助系统的设计与实现[J ] . 河池学院学报, 2008 ,28 (5) :75280.
[7 ] 计 磊,李 里,周 伟. 精通J2EE2Eclipse Struts Hibernate Spring 整合应用案例[M] . 北京:人民邮电出版社,
2006 :8211.
[8 ] 胡晓丹,魏长军. 基于Struts + Spring + Hibernate 架构的能源管理系统的研究[J ] . 计算机与现代化, 2006 (12) :252
26.
[9 ] 张洪伟. Tomcat Web 开发及整合应用[M] . 北京:清华大学出版社, 2006 :4142438.
Appl ication in CRM of SSH Based Integrated Framework
ZHA N G J ue
(College of Computer Science and Technology ,China University of Mining and Technolog , Xuzhou 221116 , China)
Abstract : The system of Customer Relationship Management (CRM) can enhance the competition power and improve the
management level for enterprise. Currently , there are some advantages to develop CRM system based on B/ S structure. This
paper combines basic characteristics of the three light2weight frameworks , i. e. Struts , Spring and Hibernate. According with
the integrated technology of the three frameworks , a solution for the design of CRM System has been proposed. It divides the
Web application into layers , fully shows the advantages of the three frameworks and implements the low coupling in multilayer
developing. This paper emphasizes the framework design , operation interface design and the application of Web design , which
plays an important role in developing a efficient , stable and high qu