CRM系統(tǒng):基于SSH的整合架構(gòu)及其在CRM中的應(yīng)用
3. 2 CRM系統(tǒng)中架構(gòu)整合
為了充分體現(xiàn)基于B/ S 結(jié)構(gòu)的CRM 系統(tǒng)優(yōu)勢,采用分層思想[6 ]的整合架構(gòu)。如圖1 所示,表示層
采用St rut s 框架,業(yè)務(wù)層采用Spring 框架,持久層采用Hibernate 框架,3 層之間的操作對象由域?qū)ο髮?
封裝。運用此系統(tǒng)結(jié)構(gòu),系統(tǒng)質(zhì)量和性能更有保障,層與層之間耦合度降低,代碼重用率增加。
表示層:該層借助了St rut s 來實現(xiàn),使用St rut s 的ActionServlet 做MVC 模式的控制器,實現(xiàn)業(yè)務(wù)邏
輯、動作處理、鏈接轉(zhuǎn)向。利用ActionForm 接收頁面的輸入數(shù)據(jù),使用Action 調(diào)用相應(yīng)的業(yè)務(wù)處理邏輯
進行處理,并反饋結(jié)果。用戶操作界面,則借助J SP 和St rut s 標(biāo)簽來呈現(xiàn)。
業(yè)務(wù)層:該層是由St rut s 的控制組件ActionServlet ,ActionMapping ,Action 和業(yè)務(wù)邏輯類J avaBean
來實現(xiàn)的。J avaBean 封裝了與數(shù)據(jù)持久層的交互關(guān)系,以實現(xiàn)所有的業(yè)務(wù)邏輯。該層借助了Spring ,通
過依賴注入、AOP 應(yīng)用、面向接口編程,來處理應(yīng)用程序的業(yè)務(wù)邏輯和業(yè)務(wù)校驗,事務(wù)管理等功能。從
而降低業(yè)務(wù)之間的耦合性,有利于系統(tǒng)功能的擴展和增強系統(tǒng)的維護性和通用性。
數(shù)據(jù)持久層:該層通過運用OR 工具Hibernate 進行關(guān)系數(shù)據(jù)庫與對象進行關(guān)聯(lián),把對數(shù)據(jù)庫表的
操作轉(zhuǎn)變?yōu)橹苯訉ο蟮牟僮?開發(fā)中與數(shù)據(jù)庫進行數(shù)據(jù)交互主要可以歸為CRUD(添加、讀取、修改、
刪除) ,這些操作占據(jù)了系統(tǒng)開發(fā)中大部分的時間,同時還需要考慮與數(shù)據(jù)庫交互的性能問題,如連接
池、數(shù)據(jù)緩存等等。數(shù)據(jù)持久層主要利用Spring 結(jié)合Hibernate 來構(gòu)建,其設(shè)計目標(biāo)是為整個項目提供
一個高層、統(tǒng)一、完全和并發(fā)的數(shù)據(jù)持久機制。
域?qū)ο髮?該層通過域?qū)ο髞矸庋b業(yè)務(wù)對象,而域?qū)ο髮泳褪怯驅(qū)ο蟮募?。借助Hibernate 將一
個個的域?qū)ο笥成錇閿?shù)據(jù)庫中的數(shù)據(jù)表,就能使得最底層的關(guān)系型數(shù)據(jù)庫表結(jié)構(gòu)被面向?qū)ο竽P退[
藏。另外,由于面向?qū)ο笤O(shè)計方法中類的可繼承性,采用繼承樹對應(yīng)一個表的策略使得該映射策略極易
擴展,并且能夠?qū)⒁粋€復(fù)雜的數(shù)據(jù)表轉(zhuǎn)化成若干簡單的域?qū)ο髞肀硎?提高了系統(tǒng)的可維護性和可修改
性。
3. 3 整合架構(gòu)的應(yīng)用
請求(Request) 和接受響應(yīng)(Response) 。表示層引入St rut s 控制分發(fā)請求,根據(jù)St rut s ActionServlet 接
受到的Request 委派相應(yīng)的Action ,Action 只負責(zé)向業(yè)務(wù)層傳遞參數(shù)和指定調(diào)用業(yè)務(wù)邏輯的Service ,管
理服務(wù)組件的Spring IoC 容器負責(zé)向Action 提供其所指定的業(yè)務(wù)模型(就是系統(tǒng)的Service) 組件,在業(yè)
務(wù)邏輯Service 層,根據(jù)具體的業(yè)務(wù)邏輯要組裝不同的DAO(數(shù)據(jù)訪問對象) 來完成一個業(yè)務(wù)模塊功能,
即Service 中每個方法對應(yīng)一個業(yè)務(wù)邏輯,而每個業(yè)務(wù)邏輯的實現(xiàn)是由不同的DAO 組裝起來協(xié)同實現(xiàn)的。
下面以公共用戶模塊中的企業(yè)新聞系統(tǒng)部分來說明這種St rut s + Spring + Hibernate 整合框架在
CRM 系統(tǒng)中的具體實現(xiàn)。企業(yè)新聞系統(tǒng)主要是完成管理員對企業(yè)新聞的管理,例如添加企業(yè)新聞、刪
除企業(yè)新聞以及為其指派相應(yīng)的訪問權(quán)限等。例如系統(tǒng)管理員登錄系統(tǒng)后,進入企業(yè)新聞管理界面,如
果要增加一條企業(yè)新聞, 則輸入要發(fā)布的新聞信息提交后, 通過St rut s 調(diào)用AddNewsAction 的
execute () 方法,此方法再調(diào)用業(yè)務(wù)層的Service 接口的實現(xiàn)類,再由該實現(xiàn)類調(diào)用相應(yīng)的DAO 接口的實
現(xiàn)類,該實現(xiàn)類則封裝了通過Hibernate 訪問具體表獲取持久化對象的CRUD 操作。例如實例中的
DAO 實現(xiàn)類中的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 框架整合使用的是全權(quán)委托模式,而
與Hibernate 框架整合則使用的是內(nèi)置支持,并且利用AOP 的動態(tài)代理來完成事務(wù)管理的工作。與
St rut s 框架的整合將為每個Action 請求進行代理式的創(chuàng)建,并為每個Action 請求注入具體的業(yè)務(wù)邏輯
實現(xiàn)。從以上代碼中可以看出,Spring 為AddNewsAction 類注入了具體的業(yè)務(wù)邏輯實現(xiàn)。
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 的一個
子類,它將把調(diào)用請求轉(zhuǎn)交給真正的Action 實現(xiàn)。
在St rut s2config. xml 配置文件中的關(guān)于增加系統(tǒng)用戶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 >
以上將該整合架構(gòu)運用于CRM 系統(tǒng)的設(shè)計與應(yīng)用,實現(xiàn)了系統(tǒng)管理員模塊的功能。從而證實了
該整合方案在B/ S 結(jié)構(gòu)的CRM 系統(tǒng)開發(fā)的可行性,并且具有一定的優(yōu)勢。
4 結(jié) 語
好的設(shè)計模式和成熟的框架技術(shù)不僅可以降低開發(fā)成本提高開發(fā)效率,更重要的是能夠大幅度的
提高軟件開發(fā)質(zhì)量。本文針對CRM 系統(tǒng)開發(fā)的需求,采用基于St rut s、Hibernate 和Spring 的整合框架
設(shè)計方案,該方案的優(yōu)勢在于:1) 通過采用St rut s 的設(shè)計充分地體現(xiàn)了MVC 的架構(gòu),其維護起來會非
常方便;2) 采用Hibernate 實現(xiàn)對象關(guān)系映射,把面向?qū)ο蟮脑O(shè)計開發(fā)與關(guān)系數(shù)據(jù)庫聯(lián)系起來,優(yōu)化了共
享平臺的數(shù)據(jù)層設(shè)計;3) Spring 模式進一步加強中間層的設(shè)計,強化元數(shù)據(jù)管理模塊,更好地實現(xiàn)以
XML 為基礎(chǔ)的事務(wù)管理。4) 3 種框架的整合方案,實現(xiàn)了Web 應(yīng)用的分層,充分發(fā)揮3 種框架各自的
優(yōu)勢,實現(xiàn)多層開發(fā)的低耦合。使得基于此整合框架開發(fā)的B/ S 結(jié)構(gòu)的CRM 系統(tǒng)具有更好的擴展性、
可維護性,它必將成為開發(fā)基于B/ S 結(jié)構(gòu)的CRM 系統(tǒng)的一個有力的解決方案。
參考文獻:
[1 ] 李耀剛,王進華. B/ S 結(jié)構(gòu)CRM 系統(tǒng)的設(shè)計開發(fā)[J ] . 內(nèi)蒙古科技與經(jīng)濟, 2007 (9) :74275.
[2 ] 孫長明,余立建. 基于Hibernate + Spring + Struts 的Web 應(yīng)用開發(fā)框架[J ] . 鐵路計算機應(yīng)用, 2007 ,16 (3) :31233.
[3 ] 方 霞. 基于Struts 框架的電信CRM 客戶關(guān)系管理系統(tǒng)的設(shè)計[J ] . 電腦學(xué)習(xí), 2008 (3) :13214.
[4 ] 張 琛,吳 躍,邱會中. 基于Struts + Spring + Hibernate 的整合架構(gòu)及其在電信業(yè)中的應(yīng)用[J ] . 計算機應(yīng)用,
2006 ,26 (12) :2652266.
[5 ] 李 磊,程 立,周悅虹. Spring in Action 中文版[M] . 北京:人民郵電出版社, 2006 :7236.
[6 ] 雷君虎,王蘇衛(wèi). 基于SSH 的本科教學(xué)評估輔助系統(tǒng)的設(shè)計與實現(xiàn)[J ] . 河池學(xué)院學(xué)報, 2008 ,28 (5) :75280.
[7 ] 計 磊,李 里,周 偉. 精通J2EE2Eclipse Struts Hibernate Spring 整合應(yīng)用案例[M] . 北京:人民郵電出版社,
2006 :8211.
[8 ] 胡曉丹,魏長軍. 基于Struts + Spring + Hibernate 架構(gòu)的能源管理系統(tǒng)的研究[J ] . 計算機與現(xiàn)代化, 2006 (12) :252
26.
[9 ] 張洪偉. Tomcat Web 開發(fā)及整合應(yīng)用[M] . 北京:清華大學(xué)出版社, 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