《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 基于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。客戶機的操作系統選用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亚洲国产精品_日韩亚洲一区二区
久久国产66| 亚洲天堂第二页| 亚洲精品精选| 国产一区日韩一区| 国产精品一区二区女厕厕| 欧美日韩免费观看中文| 猛男gaygay欧美视频| 久久成人精品电影| 亚洲欧美激情视频| 一区二区三区高清在线| 亚洲人午夜精品免费| 久久超碰97中文字幕| 午夜影视日本亚洲欧洲精品| 亚洲欧美日韩国产一区| 在线视频你懂得一区二区三区| 亚洲高清久久网| 国产在线播精品第三| 国产欧美亚洲视频| 国产欧美日韩视频在线观看 | 国产精品二区在线| 欧美色欧美亚洲另类二区| 欧美久久久久久蜜桃| 欧美激情综合五月色丁香| 欧美极品在线播放| 亚洲欧美视频| 午夜精品一区二区三区在线视| 亚洲免费小视频| 午夜精品电影| 欧美一区网站| 久久精品视频网| 久久久久久久久久久久久女国产乱 | 欧美国产91| 欧美另类在线观看| 欧美欧美全黄| 欧美特黄一级| 国产精品av免费在线观看| 国产精品成人久久久久| 久久久久综合| 免费不卡欧美自拍视频| 欧美国产综合视频| 欧美日韩成人综合天天影院| 欧美日韩中文字幕在线| 国产精品美女在线观看| 国产性做久久久久久| 激情视频亚洲| 亚洲肉体裸体xxxx137| 在线一区二区三区做爰视频网站| 亚洲一区二区精品视频| 99re热这里只有精品免费视频| 亚洲私人影院在线观看| 午夜天堂精品久久久久| 久久精品视频在线播放| 亚洲精品小视频| 亚洲字幕一区二区| 久久精品免费电影| 亚洲欧洲中文日韩久久av乱码| 亚洲精品一区二区三区蜜桃久| 日韩视频二区| 亚洲字幕在线观看| 久久久久久久91| 欧美日韩国产亚洲一区| 国产精品久久久久久模特| 国产亚洲欧美一级| 91久久久亚洲精品| 亚洲一区图片| 亚洲国内精品在线| 中文有码久久| 久久久久网址| 欧美视频观看一区| 国语精品中文字幕| 99国产精品国产精品毛片| 欧美一区二区在线观看| av成人毛片| 久久精品一区二区三区中文字幕| 欧美xx视频| 国产精品日韩欧美一区| 国产精品主播| 亚洲欧洲日本mm| 午夜精品影院| 一本色道**综合亚洲精品蜜桃冫| 欧美在线视频导航| 欧美日韩成人一区| 激情亚洲网站| 中文亚洲免费| 亚洲激情不卡| 午夜久久影院| 欧美在线综合视频| 亚洲午夜久久久久久久久电影院 | 亚洲伊人第一页| 久久综合色播五月| 国产精品嫩草影院一区二区| 亚洲国产欧美一区| 午夜精品在线看| 亚洲一区二区欧美| 另类综合日韩欧美亚洲| 国产精品呻吟| 99精品视频网| 亚洲精品国产精品久久清纯直播| 欧美在线视频a| 国产精品黄色在线观看| 91久久精品美女| 久久国产加勒比精品无码| 亚洲欧美日韩久久精品| 欧美日韩不卡一区| 亚洲第一福利视频| 久久av一区二区三区| 午夜视频一区二区| 欧美日韩在线一二三| 亚洲国产精品一区| 久久电影一区| 久久精品成人一区二区三区蜜臀 | 亚洲裸体俱乐部裸体舞表演av| 亚洲高清二区| 久久久国产精彩视频美女艺术照福利| 久久综合九色综合欧美狠狠| 国产亚洲欧美另类一区二区三区| 亚洲中字黄色| 亚洲专区国产精品| 欧美日本三区| 亚洲国产一区二区三区青草影视 | 中文精品视频| 中日韩美女免费视频网站在线观看| 免费黄网站欧美| 国产综合色在线| 亚洲欧美视频| 欧美一区二区视频免费观看| 国产精品久久波多野结衣| 99视频一区二区| 亚洲一区黄色| 国产精品红桃| 亚洲久色影视| 日韩午夜激情| 欧美国产第二页| 日韩视频免费在线| 中国成人黄色视屏| 国产精品theporn| 宅男在线国产精品| 亚洲午夜激情网站| 国产精品久久7| 亚洲欧美在线一区二区| 久久精品视频在线| 国内成+人亚洲| 亚洲二区在线| 免费在线国产精品| 亚洲人成亚洲人成在线观看| 99re66热这里只有精品3直播| 欧美精品一区二区久久婷婷| 亚洲精品国产日韩| 亚洲网址在线| 国产精品久久久久久久久婷婷| 99亚洲伊人久久精品影院红桃| 一区二区免费在线播放| 欧美视频网址| 国产一区二区三区在线观看视频| 亚洲欧美日韩精品一区二区| 香蕉久久夜色精品国产| 国产欧美一区二区三区视频| 午夜精品久久久久久久99黑人| 欧美影院视频| 国产一区二区高清不卡| 欧美专区18| 久久综合久久综合这里只有精品| 欲色影视综合吧| 亚洲伦理一区| 欧美视频一区在线| 亚洲一区日韩在线| 久久精品中文字幕一区| 亚洲大胆女人| 一区二区三区成人精品| 国产精品久久久久久久一区探花| 亚洲小视频在线| 久久一区二区三区国产精品| 亚洲国产精品精华液网站| 洋洋av久久久久久久一区| 欧美日韩视频不卡| 亚洲美女毛片| 性欧美激情精品| 欧美高清在线观看| 亚洲激情视频网| 亚洲精品在线观看免费| 欧美三级免费| 欧美一级二区| 欧美大胆a视频| 日韩系列在线| 销魂美女一区二区三区视频在线| 黄色成人免费观看| 亚洲毛片网站| 欧美日一区二区在线观看| 欧美伊人久久| 欧美激情91| 亚洲免费网站| 免费看黄裸体一级大秀欧美| 一区二区三区四区在线| 久久国产精品72免费观看| 亚洲第一福利社区| 亚洲欧美欧美一区二区三区| 在线成人中文字幕| 亚洲综合社区| 影院欧美亚洲| 亚洲欧美激情四射在线日|