《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 基于SSH的渠道管理系統的設計與實現
基于SSH的渠道管理系統的設計與實現
來源:微型機與應用2011年第4期
沙先軍1,王愛平2,魏博誠1
(1.安徽大學 計算機學院,安徽 合肥230039; 2.安徽大學 計算與信號處理教育部重點實驗室,
摘要: 結合電信行業渠道管理信息化建設的現狀和需求,采用基于Struts+Spring+Hibernate(SSH)的輕量級分層技術架構的解決方法,設計和開發了一套B/S架構的渠道管理系統。實驗結果表明,SSH框架的使用不僅簡化了系統的開發過程,而且提高了系統的可擴展性和可維護性。
Abstract:
Key words :

摘  要: 結合電信行業渠道管理信息化建設的現狀和需求,采用基于Struts+Spring+Hibernate(SSH)的輕量級分層技術架構的解決方法,設計和開發了一套B/S架構的渠道管理系統。實驗結果表明,SSH框架的使用不僅簡化了系統的開發過程,而且提高了系統的可擴展性和可維護性。
關鍵詞: Struts;Spring;Hibernate;耦合;渠道管理系統

    渠道是電信行業直接面向客戶進行營銷、銷售和服務的載體,隨著電信行業競爭格局的形成和運營形式的多樣化,已經有越來越多的渠道加入了電信行業。渠道的作用功不可沒,不僅發展了電信行業而且還為電信運營商降低了運營成本,但目前渠道管理仍然面臨著不少問題。首先由于歷史原因,渠道信息系統版本較多,維護和管理比較困難;其次系統流程不暢;而且由于系統功能不健全,數據不全面,不能為業務部門提供全面和準確的支撐報表統計功能。本文基于這樣的業務需求驅動,采用能夠快速開發出跨平臺、可重用、可擴展、分布式系統的SSH架構,設計實現了一個能夠較好地適應業務需求變化的渠道管理信息系統。
1 SSH技術集成框架
    使用可重用的、成熟穩定的框架可以構建健壯的、可重用的、可擴充的、易維護的Web應用程序。目前,Java開源世界里有不少優秀的框架,本文選用目前業界主流的Java開發體系Struts+Spring+Hibernate實現整個系統。從圖1可以看出SSH集成架構主要由頁面表現層、業務邏輯層、數據持久層構成,并且各層之間通過域對象[1](Domain Objects)做為載體進行通信。


1.1 頁面表現層
    頁面層由Struts實現,Struts是基于MVC模型的框架。MVC模型將一個Web應用分割成為模型(Model)、視圖(View)和控制器(Controller)三個部件,這三個部件既相互獨立又能協同工作,通用的控制組件ActionServlet接收來自客戶端的HTTP請求,根據Struts-config.xml配置文件,把請求轉發給相應的Action對象,然后Action類實現業務邏輯和動作處理,通過流程跳轉將處理結果返回給客戶端[2]。
1.2 業務邏輯層
    由Spring實現業務組件的組裝關聯與管理,Spring是個流行的輕量級容器,是一個開源的并且普遍兼容的非強制性的框架。它通過IoC[3](Inversion of Control,又稱DI,Dependency Injection)、AOP(Aspect-Oriented Programming)的應用、使用面向接口的編程最大限度地降低業務組件之間的耦合度,增強系統兼容性和可擴展性。
1.3 數據持久層
    借助開源框架Hibernate對JDBC進行輕量級的對象封裝,將數據庫表與對象進行關聯,實現數據庫訪問性能優化和與數據庫交互的常用操作CRUD。Hibernate封裝了數據庫訪問、事務管理、數據緩存等工作,可以大大提供開發效率。
    將這三種技術有機結合起來構建的SSH技術框架,不但可以有效提高系統開發效率,而且在系統安全性、穩定性和健壯性上都有良好的改進。域對象在各個層之間移動,為表示層提供所需要的數據源,為持久層提供對象,使得各個層以一種松散耦合的方式彼此作用而無需考慮低層的技術細節,進而構建出一個完整的Web開發框架。
2 系統簡介及分層實現
2.1 系統簡介

    渠道是電信運營商與客戶進行交互的具體途徑,是向客戶銷售產品并提供差異化服務的載體。渠道管理主要承載渠道運營過程中的管理支撐功能,包括面向渠道的規劃建設和所涉及人員、費用等方面的基礎管理功能,以及績效考核、服務管理等輔助管理功能。最終通過系統達到為渠道業務提供服務、加強渠道管控水平、提高各類渠道商的素質及實力、培育營銷渠道系統的核心競爭力,并引導各渠道商積極配合電信運營商推行相關市場政策。
    圖2為某省渠道管理系統的功能結構圖,主要包括渠道規劃建設管理、業務管理、費用管理、運營考核管理、積分管理、酬金管理、系統管理、資源管理、支撐服務管理、統計報表等十大功能模塊。該系統服務器操作系統采用Unix(solaris),關系型數據庫采用Oracle,應用服務器根據資金投入選擇了Oracle 的Weblogic??蛻魴C的操作系統選用Windows2000、WindowsXP等版本,安裝IE6.0以上的瀏覽器。

2.2 SSH架構分層實現
2.2.1 數據持久層的搭建

    持久層Persistence主要完成數據的訪問,它操作底層的數據庫表,使用DAO組件封裝具體的操作細節,為業務層提供接口,使業務邏輯與數據持久化分離。在Hibernate中,通過配置相應的XML文件(*.hbm.xml)來完成對象與表、對象屬性與表字段的“O/R映射”關系。Hibernate運行時,會自動讀取XML映射文件,然后按照該文件指定的規則動態構建Java類,以便管理數據在數據庫與Java程序之間的轉換。
    持久層的訪問通過DAO組件完成,下面以渠道組織機構信息表(Dchngroupmsg)為例介紹DAO組件建立的過程。
    首先使用自動化工具生成JAVA的VO(Value Obects)對象DchngroupmsgVo和*.hbm.xml映射文件。Dchngroup-
msgVo類的屬性與映射文件Dchngroupmsg.hbm.xml中的字段是一一對應的,它完成了對象與表、對象屬性與表字段的“O/R映射”。同時所有映射文件需要在Spring框架的application-Context.xml中配置,這樣在Hibernate啟動時才能根據該映射文件真正完成對象/關系的映射。
    其次是DAO組件的實現與配置。DAO組件繼承了HibernateDaoSupport類,是Spring中整合了Hibernate的支持類,正是由于Spring對Hibernate的良好整合,調用Hibernate進行數據操作時只需要簡單地繼承Spring的HibemateDaoSupport類,然后在需要調用的方法中通過getHibemateTemplate( )提供的方法就可以方便地操縱Hibernate。
    DAO組件實現后,將它們配置在Spring容器中,讓Spring容器為其注入SessionFactory的引用,并將DAO組件注入到業務邏輯組件中。通過這種依賴注入,可以提供應用各組件之間的良好解耦。
2.2.2 業務邏輯層的構建
    在SSH架構中Spring是最核心的框架,Spring主要應用于業務層來管理其他組件,充當了管理容器的角色。負責處理應用程序業務邏輯、業務校驗和事務管理[4];同時管理業務層的對象依賴;在表示層和持久層之間增加了一個靈活的機制,使得它們沒有直接聯系,借助Spring的IoC、AOP應用、面向接口編程,能降低業務組件之間的耦合度,增強系統擴展性。
    構建Spring業務層主要完成以下兩方面的任務:
    (1)對Spring容器進行初始化與配置:Spring提供一個ContextLoaderListener類用作Spring容器的初始化。Spring容器初始化之后,需要創建 ApplicationContext實例,Spring有兩個核心接口BeanFactory和ApplicationContext,其中ApplicationContext是BeanFactory的子接口,增強了BeanFactory的功能,提供系統架構服務。
    (2)業務邏輯實現:使用面向接口的編程,調用持久層定義好的接口為表示層提供業務接口,而無需關心接口的具體實現細節,先定義業務層的接口SGroupMsgSvcI:
    接口SGroupMsgSvcI的實現類SGroupMsgSvcImpl:
    public class SGroupMsgSvcImpl extends BaseService
implements SGroupMsgSvc
    {
        public DchngroupmsgVo getDchngroupmsgVo(String id)
throws Exception
        {
            DchngroupmsgVo gmvo = new DchngroupmsgVo();
            DchngroupmsgDAO gmdao =(DchngroupmsgDAO)
            this.getBean("dchngroupmsgdao");
            return  gmvo = gmdao.get(id);
        }
    }
    以上的業務邏輯很簡單,只是通過簡單的調用DchngroupmsgDAO的接口方法來完成。DchngroupmsgDAO引用是在前面持久層中配置的,這個配置指示Spring去動態注入DchngroupmsgDAO到SGroupMsgSvcImpl中,實現渠道組織信息的獲取。
2.2.3 頁面表示層的建立
    Struts實際上是Servlet技術的一個擴展,它用一個ActionServlet來接收瀏覽器的請求,用于系統的集中控制,然后在相應的Action類中調用業務邏輯,最后進行流程跳轉。
    表示層的建立主要是使用標簽編寫JSP頁面,定義Struts的Action類及相應的配置文件。首先要定義ActionForm,用于收集JSP頁面傳來的數據,供Action中調用業務邏輯使用。為了使用Struts 的Validator框架來做客戶端的表單驗證,ActionForm繼承了org.apache.struts.action.ActionForm的子類ValidatorForm。ActionForm中定義的成員名稱要與JSP頁面表單中的域名稱一致,這樣在提交數據的時候,Struts會自動把表單中的數據封裝到繼承的ActionForm中,避免了以往用request.getParameter獲取參數的繁瑣。
    然后編寫Action類,所有的Action類都繼承了自定義的BaseAction類,BaseAction類是 org.apache.struts.actions.DispatchAction的子類,同時在BaseAction類中實現了一些公共方法,例如令牌驗證判斷是否重復提交、生成下拉列表、創建上下文ApplicationContext實例等。Action類從ActionForm中提取數據,調用業務邏輯,然后根據返回結果轉向相應的頁面。
    public class SGroupMsgAction extends BaseAction
    {
        public ActionForward queryGroupMsg(ActionMapping
mapping,
            ActionForm actionForm, HttpServletRequest request,
            HttpServletResponse response)throws Exception{
            SGroupMsgSvcI groupMsg_chn = (SGroupMsgSvcI)
this.getBean("SGroupMsgSvc");
            String group_id = request.getParameter
("GROUP_ID");
            DchngroupmsgVo dvo = groupMsg_chn.getDchn-
groupmsgVo(group_id);
            ActionForward forward = mapping.findForward
("SUCCESS");
            return forward;
        }
    }
    所有的Struts Action類都繼承自BaseAction,基類BaseAction完成Spring上下文ApplicactionContext.xml的加載,提供一個公共的服務定位器方法getBean(),這里SGroupMsgAction是BaseAction的子類,繼承了父類的getBean方法,所以只要通過傳入參數“SGroupMsgSvc”即可查找Spring的Bean資源,“SGroupMsgSvc”正是前面業務層在配置文件中指定的bean。這樣根據給定bean的id就能返回配置文件中指定的類。
    Struts的控制器ActionServlet接收用戶查詢渠道信息的URL請求“/sGroupMsg.do?operate=queryGroupMsg”,根據該請求的URL查找struts-config.xml配置文件來決定該請求是否處理SGroupMsgAction,SGroupMsgAction的queryGroupMsg方法接收頁面數據,通過服務定位器查找名為“SGroupMsgSvc”的Bean資源,返回業務類的接口SGroupMsgSvcI,并以域模型DchngroupmsgVo對象為參數調用業務接口的getDchngroupmsgVo方法來處理業務邏輯,若查詢成功則返回一個自定義邏輯名稱“SUCCESS”的ActionForward對象,最后ActionServlet把流程轉向ActionForward中定義的JSP頁面(success.jsp),從而完成一次請求/響應過程。
    至此,基于Struts、Spring+Hibernate框架開發的渠道組織機構查詢功能開發完成。
    本文所設計的SSH集成的Web開發框架基于良好的應用程序分層和成熟的開源項目,具有結構清晰、松散耦合、可擴展和可維護性好的特點,已在電信運營商的各個省份(如北京、湖南、安徽、山西、陜西、四川,黑龍江、新疆等)的渠道管理系統中得到了非常成功的應用。目前系統采用的SSH集成架構已成為最為理想和成熟的J2EE Web應用框架,而且這種開發模式將會被越來越多的程序員所接受,在實際開發中得到廣泛應用。
參考文獻
[1] 郝彬,陳朔鷹.利用框架技術構建Web應用.計算機工程與設計[J].2007,28(1):8-13.
[2] 諶湘倩,狄文輝,孫冬.基于輕量級J2EE框架的網絡教學系統[J].計算機工程,2008,34(6):266-268.
[3] 林信良.Spring 2.0技術手冊[M].北京:電子工業出版社,  2007.
[4] 李剛.整合Struts+Hibernate+Spring應用開發詳解[M].北京:清華大學出版社,2007.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲片在线观看| 欧美在线观看网址综合| 亚洲自拍电影| 夜夜精品视频一区二区| 亚洲三级视频在线观看| 91久久国产精品91久久性色| 黄色在线成人| 一区二区三区在线看| 国户精品久久久久久久久久久不卡 | 久久激情视频免费观看| 亚洲主播在线| 亚洲欧美区自拍先锋| 亚洲欧美制服另类日韩| 午夜精品久久久久久久蜜桃app | 午夜免费在线观看精品视频| 亚洲欧美精品在线| 午夜精品一区二区三区电影天堂 | 亚洲青色在线| 在线精品在线| 在线观看日韩国产| 亚洲高清免费在线| 亚洲高清网站| 亚洲免费观看| 一本一本大道香蕉久在线精品| 亚洲精品乱码视频| 99国产精品久久久| 亚洲午夜一区二区| 欧美亚洲综合网| 久久精品人人爽| 亚洲精品孕妇| 宅男噜噜噜66一区二区66| 亚洲一区二区三区在线视频| 亚洲自拍偷拍麻豆| 欧美一区二区在线免费播放| 欧美专区一区二区三区| 久久阴道视频| 欧美精品一区二| 国产精品国产三级国产aⅴ入口 | 99热精品在线| 亚洲自拍偷拍色片视频| 欧美一区二区视频网站| 亚洲国产经典视频| 一本大道久久a久久综合婷婷| 亚洲一区久久| 久久久久久综合| 免费在线观看日韩欧美| 欧美日韩国产色视频| 国产精品永久免费在线| 伊人成年综合电影网| 亚洲精品欧洲| 午夜激情一区| 亚洲人成在线播放网站岛国| 亚洲图片在区色| 久久久久久国产精品mv| 欧美美女福利视频| 国产欧美视频一区二区| 1000部国产精品成人观看| 一本大道久久a久久综合婷婷| 亚洲欧美在线观看| 亚洲精品国产精品国自产在线| 亚洲天堂第二页| 久久噜噜亚洲综合| 欧美三级视频在线| 精久久久久久久久久久| 一本色道久久88综合日韩精品 | 久久爱www| 欧美日韩1区2区| 国产日本欧美一区二区三区| 亚洲国内高清视频| 亚洲欧美日韩综合aⅴ视频| 亚洲激情电影在线| 午夜精品久久久久久久99水蜜桃| 麻豆精品视频在线观看视频| 欧美私人啪啪vps| 影音先锋久久资源网| 亚洲香蕉在线观看| 亚洲国产欧美国产综合一区| 亚洲免费中文字幕| 欧美国产高潮xxxx1819| 国产手机视频一区二区| 日韩视频免费在线观看| 久久精品女人的天堂av| 亚洲欧美视频在线| 欧美精品1区2区3区| 韩国成人福利片在线播放| 中文精品在线| 日韩小视频在线观看专区| 久久亚洲精品欧美| 国产精品夜夜夜| 日韩午夜一区| 亚洲人午夜精品免费| 久久精品国产欧美亚洲人人爽| 欧美日韩综合精品| 亚洲国产专区| 91久久久久久久久久久久久| 久久se精品一区精品二区| 国产精品va| 亚洲精品国产品国语在线app| 久久精品人人做人人爽| 久久国产乱子精品免费女| 国产精品高潮在线| av成人免费| 99re成人精品视频| 欧美大片18| 亚洲第一搞黄网站| 久久激情视频久久| 久久久91精品国产| 国产欧美一区二区三区沐欲 | 国产精品入口尤物| 一区二区不卡在线视频 午夜欧美不卡在 | 亚洲欧美日韩国产一区二区三区 | 久久本道综合色狠狠五月| 欧美一级视频精品观看| 国产精品电影网站| 一二三区精品| 亚洲午夜三级在线| 欧美日韩直播| 一本不卡影院| 亚洲一区免费| 国产精品捆绑调教| 亚洲一区在线视频| 性久久久久久| 国产欧美日韩在线视频| 久久av免费一区| 久久精品国产免费| 韩国v欧美v日本v亚洲v| 久久国产一区二区| 久久亚洲综合色| 在线观看久久av| 亚洲精品国产品国语在线app| 欧美激情精品久久久久久黑人| 亚洲国产精品一区制服丝袜| 亚洲人人精品| 欧美日韩精品免费在线观看视频| 亚洲精品视频二区| av成人天堂| 欧美日韩另类一区| 亚洲少妇诱惑| 久久成人精品一区二区三区| 国产亚洲一区二区三区在线观看| 欧美在线网站| 欧美freesex8一10精品| 亚洲精品免费一二三区| 亚洲一区二区三区涩| 国产精品一卡二卡| 欧美在线免费一级片| 免费视频一区二区三区在线观看| 91久久一区二区| 亚洲欧美日韩爽爽影院| 国产日韩欧美制服另类| 亚洲国产精品v| 欧美日韩成人综合在线一区二区| 99国产精品久久久久老师| 午夜精品av| 一区二区三区在线看| 一区二区三区四区五区精品视频| 国产精品美女www爽爽爽| 欧美一区二区日韩一区二区| 欧美jjzz| 亚洲一区免费| 久久亚洲综合色| 一本久道综合久久精品| 久久xxxx精品视频| 亚洲欧洲日本国产| 午夜亚洲伦理| 在线免费观看成人网| 亚洲一区欧美| 激情久久久久久久| 中文在线资源观看网站视频免费不卡| 国产精品腿扒开做爽爽爽挤奶网站| 久久xxxx精品视频| 欧美三区在线观看| 欧美一区三区三区高中清蜜桃| 欧美大片一区二区| 亚洲无人区一区| 嫩草成人www欧美| 亚洲网站在线| 欧美aⅴ99久久黑人专区| 亚洲一二三区视频在线观看| 免费在线看一区| 性欧美在线看片a免费观看| 欧美精品成人| 欧美亚洲在线观看| 欧美日韩中文字幕精品| 亚洲高清在线精品| 国产精品国产福利国产秒拍| 亚洲国产影院| 国产欧美日韩免费看aⅴ视频| 亚洲久久一区| 国产自产精品| 午夜国产精品影院在线观看| 亚洲人成网站在线播| 久久亚洲精选| 亚洲欧美国内爽妇网| 欧美日韩国产小视频| 亚洲国产精品123| 国产日韩一区欧美| 亚洲一区二区三区777| 亚洲第一搞黄网站| 久久米奇亚洲|