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