• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于SSH的渠道管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

      2011-05-11 11:59:00沙先軍王愛平魏博誠(chéng)
      關(guān)鍵詞:調(diào)用頁(yè)面組件

      沙先軍 ,王愛平 ,魏博誠(chéng)

      (1.安徽大學(xué) 計(jì)算機(jī)學(xué)院,安徽 合肥230039;2.安徽大學(xué) 計(jì)算與信號(hào)處理教育部重點(diǎn)實(shí)驗(yàn)室,安徽 合肥230039)

      渠道是電信行業(yè)直接面向客戶進(jìn)行營(yíng)銷、銷售和服務(wù)的載體,隨著電信行業(yè)競(jìng)爭(zhēng)格局的形成和運(yùn)營(yíng)形式的多樣化,已經(jīng)有越來越多的渠道加入了電信行業(yè)。渠道的作用功不可沒,不僅發(fā)展了電信行業(yè)而且還為電信運(yùn)營(yíng)商降低了運(yùn)營(yíng)成本,但目前渠道管理仍然面臨著不少問題。首先由于歷史原因,渠道信息系統(tǒng)版本較多,維護(hù)和管理比較困難;其次系統(tǒng)流程不暢;而且由于系統(tǒng)功能不健全,數(shù)據(jù)不全面,不能為業(yè)務(wù)部門提供全面和準(zhǔn)確的支撐報(bào)表統(tǒng)計(jì)功能。本文基于這樣的業(yè)務(wù)需求驅(qū)動(dòng),采用能夠快速開發(fā)出跨平臺(tái)、可重用、可擴(kuò)展、分布式系統(tǒng)的SSH架構(gòu),設(shè)計(jì)實(shí)現(xiàn)了一個(gè)能夠較好地適應(yīng)業(yè)務(wù)需求變化的渠道管理信息系統(tǒng)。

      1 SSH技術(shù)集成框架

      使用可重用的、成熟穩(wěn)定的框架可以構(gòu)建健壯的、可重用的、可擴(kuò)充的、易維護(hù)的Web應(yīng)用程序。目前,Java開源世界里有不少優(yōu)秀的框架,本文選用目前業(yè)界主流的Java開發(fā)體系Struts+Spring+Hibernate實(shí)現(xiàn)整個(gè)系統(tǒng)。從圖1可以看出SSH集成架構(gòu)主要由頁(yè)面表現(xiàn)層、業(yè)務(wù)邏輯層、數(shù)據(jù)持久層構(gòu)成,并且各層之間通過域?qū)ο骩1](Domain Objects)做為載體進(jìn)行通信。

      1.1 頁(yè)面表現(xiàn)層

      頁(yè)面層由Struts實(shí)現(xiàn),Struts是基于MVC模型的框架。MVC模型將一個(gè)Web應(yīng)用分割成為模型(Model)、視圖(View)和控制器(Controller)三個(gè)部件,這三個(gè)部件既相互獨(dú)立又能協(xié)同工作,通用的控制組件ActionServlet接收來自客戶端的HTTP請(qǐng)求,根據(jù)Struts-config.xml配置文件,把請(qǐng)求轉(zhuǎn)發(fā)給相應(yīng)的Action對(duì)象,然后Action類實(shí)現(xiàn)業(yè)務(wù)邏輯和動(dòng)作處理,通過流程跳轉(zhuǎn)將處理結(jié)果返回給客戶端[2]。

      1.2 業(yè)務(wù)邏輯層

      由Spring實(shí)現(xiàn)業(yè)務(wù)組件的組裝關(guān)聯(lián)與管理,Spring是個(gè)流行的輕量級(jí)容器,是一個(gè)開源的并且普遍兼容的非強(qiáng)制性的框架。它通過IoC[3](Inversion of Control,又稱DI,Dependency Injection)、AOP(Aspect-Oriented Programming)的應(yīng)用、使用面向接口的編程最大限度地降低業(yè)務(wù)組件之間的耦合度,增強(qiáng)系統(tǒng)兼容性和可擴(kuò)展性。

      1.3 數(shù)據(jù)持久層

      借助開源框架Hibernate對(duì)JDBC進(jìn)行輕量級(jí)的對(duì)象封裝,將數(shù)據(jù)庫(kù)表與對(duì)象進(jìn)行關(guān)聯(lián),實(shí)現(xiàn)數(shù)據(jù)庫(kù)訪問性能優(yōu)化和與數(shù)據(jù)庫(kù)交互的常用操作CRUD。Hibernate封裝了數(shù)據(jù)庫(kù)訪問、事務(wù)管理、數(shù)據(jù)緩存等工作,可以大大提供開發(fā)效率。

      將這三種技術(shù)有機(jī)結(jié)合起來構(gòu)建的SSH技術(shù)框架,不但可以有效提高系統(tǒng)開發(fā)效率,而且在系統(tǒng)安全性、穩(wěn)定性和健壯性上都有良好的改進(jìn)。域?qū)ο笤诟鱾€(gè)層之間移動(dòng),為表示層提供所需要的數(shù)據(jù)源,為持久層提供對(duì)象,使得各個(gè)層以一種松散耦合的方式彼此作用而無需考慮低層的技術(shù)細(xì)節(jié),進(jìn)而構(gòu)建出一個(gè)完整的Web開發(fā)框架。

      2 系統(tǒng)簡(jiǎn)介及分層實(shí)現(xiàn)

      2.1 系統(tǒng)簡(jiǎn)介

      渠道是電信運(yùn)營(yíng)商與客戶進(jìn)行交互的具體途徑,是向客戶銷售產(chǎn)品并提供差異化服務(wù)的載體。渠道管理主要承載渠道運(yùn)營(yíng)過程中的管理支撐功能,包括面向渠道的規(guī)劃建設(shè)和所涉及人員、費(fèi)用等方面的基礎(chǔ)管理功能,以及績(jī)效考核、服務(wù)管理等輔助管理功能。最終通過系統(tǒng)達(dá)到為渠道業(yè)務(wù)提供服務(wù)、加強(qiáng)渠道管控水平、提高各類渠道商的素質(zhì)及實(shí)力、培育營(yíng)銷渠道系統(tǒng)的核心競(jìng)爭(zhēng)力,并引導(dǎo)各渠道商積極配合電信運(yùn)營(yíng)商推行相關(guān)市場(chǎng)政策。

      圖2為某省渠道管理系統(tǒng)的功能結(jié)構(gòu)圖,主要包括渠道規(guī)劃建設(shè)管理、業(yè)務(wù)管理、費(fèi)用管理、運(yùn)營(yíng)考核管理、積分管理、酬金管理、系統(tǒng)管理、資源管理、支撐服務(wù)管理、統(tǒng)計(jì)報(bào)表等十大功能模塊。該系統(tǒng)服務(wù)器操作系統(tǒng)采用 Unix(solaris),關(guān)系型數(shù)據(jù)庫(kù)采用 Oracle,應(yīng)用服務(wù)器根據(jù)資金投入選擇了Oracle的Weblogic。客戶機(jī)的操作系統(tǒng)選用Windows2000、WindowsXP等版本,安裝IE6.0以上的瀏覽器。

      2.2 SSH架構(gòu)分層實(shí)現(xiàn)

      2.2.1 數(shù)據(jù)持久層的搭建

      持久層Persistence主要完成數(shù)據(jù)的訪問,它操作底層的數(shù)據(jù)庫(kù)表,使用DAO組件封裝具體的操作細(xì)節(jié),為業(yè)務(wù)層提供接口,使業(yè)務(wù)邏輯與數(shù)據(jù)持久化分離。在Hibernate中,通過配置相應(yīng)的 XML文件(*.hbm.xml)來完成對(duì)象與表、對(duì)象屬性與表字段的“O/R映射”關(guān)系。Hibernate運(yùn)行時(shí),會(huì)自動(dòng)讀取XML映射文件,然后按照該文件指定的規(guī)則動(dòng)態(tài)構(gòu)建Java類,以便管理數(shù)據(jù)在數(shù)據(jù)庫(kù)與Java程序之間的轉(zhuǎn)換。

      持久層的訪問通過DAO組件完成,下面以渠道組織機(jī)構(gòu)信息表(Dchngroupmsg)為例介紹DAO組件建立的過程。

      首先使用自動(dòng)化工具生成JAVA的VO(Value Obects)對(duì)象 DchngroupmsgVo和 *.hbm.xml映射文件。DchngroupmsgVo類的屬性與映射文件Dchngroupmsg.hbm.xml中的字段是一一對(duì)應(yīng)的,它完成了對(duì)象與表、對(duì)象屬性與表字段的“O/R映射”。同時(shí)所有映射文件需要在Spring框架的 application-Context.xml中配置,這樣在 Hibernate啟動(dòng)時(shí)才能根據(jù)該映射文件真正完成對(duì)象/關(guān)系的映射。

      其次是DAO組件的實(shí)現(xiàn)與配置。DAO組件繼承了HibernateDaoSupport類,是 Spring中整合了 Hibernate的支持類,正是由于Spring對(duì)Hibernate的良好整合,調(diào)用Hibernate進(jìn)行數(shù)據(jù)操作時(shí)只需要簡(jiǎn)單地繼承Spring的HibemateDaoSupport類,然后在需要調(diào)用的方法中通過getHibemateTemplate()提供的方法就可以方便地操縱Hibernate。

      DAO組件實(shí)現(xiàn)后,將它們配置在Spring容器中,讓Spring容器為其注入SessionFactory的引用,并將DAO組件注入到業(yè)務(wù)邏輯組件中。通過這種依賴注入,可以提供應(yīng)用各組件之間的良好解耦。

      2.2.2 業(yè)務(wù)邏輯層的構(gòu)建

      在SSH架構(gòu)中Spring是最核心的框架,Spring主要應(yīng)用于業(yè)務(wù)層來管理其他組件,充當(dāng)了管理容器的角色。負(fù)責(zé)處理應(yīng)用程序業(yè)務(wù)邏輯、業(yè)務(wù)校驗(yàn)和事務(wù)管理[4];同時(shí)管理業(yè)務(wù)層的對(duì)象依賴;在表示層和持久層之間增加了一個(gè)靈活的機(jī)制,使得它們沒有直接聯(lián)系,借助 Spring的 IoC、AOP應(yīng)用、面向接口編程,能降低業(yè)務(wù)組件之間的耦合度,增強(qiáng)系統(tǒng)擴(kuò)展性。

      構(gòu)建Spring業(yè)務(wù)層主要完成以下兩方面的任務(wù):

      (1)對(duì)Spring容器進(jìn)行初始化與配置:Spring提供一個(gè)ContextLoaderListener類用作Spring容器的初始化。Spring容器初始化之后,需要?jiǎng)?chuàng)建 ApplicationContext實(shí)例,Spring有兩個(gè)核心接口 BeanFactory和ApplicationContext,其中 ApplicationContext是 BeanFactory的子接口,增強(qiáng)了BeanFactory的功能,提供系統(tǒng)架構(gòu)服務(wù)。

      (2)業(yè)務(wù)邏輯實(shí)現(xiàn):使用面向接口的編程,調(diào)用持久層定義好的接口為表示層提供業(yè)務(wù)接口,而無需關(guān)心接口的具體實(shí)現(xiàn)細(xì)節(jié),先定義業(yè)務(wù)層的接口SGroupMsgSvcI:

      以上的業(yè)務(wù)邏輯很簡(jiǎn)單,只是通過簡(jiǎn)單的調(diào)用DchngroupmsgDAO的接口方法來完成。DchngroupmsgDAO引用是在前面持久層中配置的,這個(gè)配置指示Spring去動(dòng)態(tài)注入DchngroupmsgDAO到SGroupMsgSvcImpl中,實(shí)現(xiàn)渠道組織信息的獲取。2.2.3頁(yè)面表示層的建立Struts實(shí)際上是Servlet技術(shù)的一個(gè)擴(kuò)展,它用一個(gè)ActionServlet來接收瀏覽器的請(qǐng)求,用于系統(tǒng)的集中控制,然后在相應(yīng)的Action類中調(diào)用業(yè)務(wù)邏輯,最后進(jìn)行流程跳轉(zhuǎn)。

      表示層的建立主要是使用標(biāo)簽編寫JSP頁(yè)面,定義Struts的Action類及相應(yīng)的配置文件。首先要定義ActionForm,用于收集JSP頁(yè)面?zhèn)鱽淼臄?shù)據(jù),供Action中調(diào)用業(yè)務(wù)邏輯使用。為了使用Struts的Validator框架來做客戶端的表單驗(yàn)證,ActionForm繼承了org.apache.struts.action.ActionForm的子類ValidatorForm。ActionForm中定義的成員名稱要與JSP頁(yè)面表單中的域名稱一致,這樣在提交數(shù)據(jù)的時(shí)候,Struts會(huì)自動(dòng)把表單中的數(shù)據(jù)封裝到繼承的ActionForm中,避免了以往用request.getParameter獲取參數(shù)的繁瑣。

      然后編寫Action類,所有的Action類都繼承了自定義的BaseAction類,BaseAction類是 org.apache.struts.actions.DispatchAction的子類,同時(shí)在BaseAction類中實(shí)現(xiàn)了一些公共方法,例如令牌驗(yàn)證判斷是否重復(fù)提交、生成下拉列表、創(chuàng)建上下文ApplicationContext實(shí)例等。Action類從ActionForm中提取數(shù)據(jù),調(diào)用業(yè)務(wù)邏輯,然后根據(jù)返回結(jié)果轉(zhuǎn)向相應(yīng)的頁(yè)面。

      所有的Struts Action類都繼承自BaseAction,基類BaseAction完成Spring上下文ApplicactionContext.xml的加載,提供一個(gè)公共的服務(wù)定位器方法 getBean(),這里SGroupMsgAction是BaseAction的子類,繼承了父類的getBean方法,所以只要通過傳入?yún)?shù)“SGroupMsgSvc”即可查找 Spring的 Bean資源,“SGroupMsgSvc”正是前面業(yè)務(wù)層在配置文件中指定的bean。這樣根據(jù)給定bean的id就能返回配置文件中指定的類。

      Struts的控制器ActionServlet接收用戶查詢渠道信息的 URL 請(qǐng)求 “/sGroupMsg.do?operate=queryGroupMsg”,根據(jù)該請(qǐng)求的URL查找struts-config.xml配置文件來決定該請(qǐng)求是否處理SGroupMsgAction,SGroupMsgAction的queryGroupMsg方法接收頁(yè)面數(shù)據(jù),通過服務(wù)定位器查找名為“SGroupMsgSvc”的Bean資源,返回業(yè)務(wù)類的接口SGroupMsgSvcI,并以域模型DchngroupmsgVo對(duì)象為參數(shù)調(diào)用業(yè)務(wù)接口的getDchngroupmsgVo方法來處理業(yè)務(wù)邏輯,若查詢成功則返回一個(gè)自定義邏輯名稱“SUCCESS”的ActionForward對(duì)象,最后ActionServlet把流程轉(zhuǎn)向ActionForward中定義的JSP頁(yè)面(success.jsp),從而完成一次請(qǐng)求/響應(yīng)過程。

      至此,基于Struts、Spring+Hibernate框架開發(fā)的渠道組織機(jī)構(gòu)查詢功能開發(fā)完成。

      本文所設(shè)計(jì)的SSH集成的Web開發(fā)框架基于良好的應(yīng)用程序分層和成熟的開源項(xiàng)目,具有結(jié)構(gòu)清晰、松散耦合、可擴(kuò)展和可維護(hù)性好的特點(diǎn),已在電信運(yùn)營(yíng)商的各個(gè)省份(如北京、湖南、安徽、山西、陜西、四川,黑龍江、新疆等)的渠道管理系統(tǒng)中得到了非常成功的應(yīng)用。目前系統(tǒng)采用的SSH集成架構(gòu)已成為最為理想和成熟的J2EE Web應(yīng)用框架,而且這種開發(fā)模式將會(huì)被越來越多的程序員所接受,在實(shí)際開發(fā)中得到廣泛應(yīng)用。

      [1]郝彬,陳朔鷹.利用框架技術(shù)構(gòu)建 Web應(yīng)用.計(jì)算機(jī)工程與設(shè)計(jì)[J].2007,28(1):8-13.

      [2]諶湘倩,狄文輝,孫冬.基于輕量級(jí) J2EE框架的網(wǎng)絡(luò)教學(xué)系統(tǒng)[J].計(jì)算機(jī)工程,2008,34(6):266-268.

      [3]林信良.Spring 2.0技術(shù)手冊(cè)[M].北京:電子工業(yè)出版社,2007.

      [4]李剛.整合 Struts+Hibernate+Spring應(yīng)用開發(fā)詳解[M].北京:清華大學(xué)出版社,2007.

      猜你喜歡
      調(diào)用頁(yè)面組件
      大狗熊在睡覺
      刷新生活的頁(yè)面
      無人機(jī)智能巡檢在光伏電站組件診斷中的應(yīng)用
      能源工程(2022年2期)2022-05-23 13:51:50
      新型碎邊剪刀盤組件
      U盾外殼組件注塑模具設(shè)計(jì)
      核電項(xiàng)目物項(xiàng)調(diào)用管理的應(yīng)用研究
      LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
      基于系統(tǒng)調(diào)用的惡意軟件檢測(cè)技術(shù)研究
      風(fēng)起新一代光伏組件膜層:SSG納米自清潔膜層
      利用RFC技術(shù)實(shí)現(xiàn)SAP系統(tǒng)接口通信
      孝感市| 调兵山市| 临澧县| 凤城市| 黔西县| 洛扎县| 海淀区| 鸡西市| 松溪县| 长沙县| 道孚县| 尼勒克县| 通江县| 延川县| 夏河县| 苗栗市| 肃北| 洛隆县| 呼图壁县| 千阳县| 泾源县| 当雄县| 酒泉市| 玉溪市| 临澧县| 阳曲县| 读书| 岚皋县| 华阴市| 若尔盖县| 方城县| 故城县| 晴隆县| 乳山市| 彭水| 上高县| 望都县| 盐源县| 奉化市| 宜宾县| 桓台县|