999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于“Struts+Spring+Hibernate”架構技術的B2C電子商務系統的設計

2008-12-31 00:00:00陶祥亞
商場現代化 2008年19期

[摘要] 目前,輕量級J2EE架構Struts+Spring+Hibernate已漸漸成為B2C電子商務系統的主流技術。本文在對Struts、Spring和Hibernate進行分析的基礎上,對B2C電子商務系統進行了整體設計,并對該架構下電子商務系統的技術實現進行了詳細說明,并給出了相關構造的功能描述和部分核心代碼。本研究中所用的架構技術能提高商務系統的安全性和穩定性,使商務系統資源得到最大限度的節省和利用,同時使系統具備更好的可擴展性和可維護性。

[關鍵詞] Struts+Spring+Hibernate 電子商務系統 設計

縱觀電子商務的發展歷史,大概可分為兩個階段。第一階段是產品介紹階段,即通過互聯網公布企業和產品信息,類似于傳統的廣告方式;第二階段是產品交易階段,企業間通過基于互聯網的定單交易系統,直接在網上完成交易,主要表現形式有電子采購、電子銷售和電子交易市場三大類網站。目前,大多數的電子商務系統主要由供求系統、新聞發布系統、“知道”系統、B2C系統四部分構成。其中B2C系統是電子商務系統的核心系統,為整個商務平臺構建了一個基本框架,主要提供電子商情,能夠促進消費者購買商品,從而產生電子購物和交易。隨著Internet的迅猛發展與J2EE技術的成熟,使用Web應用框架的開發者的人數得到了快速地增長。框架通過為應用開發提供預先準備好的起步器,來幫助開發者更快、更好地建立應用。框架的使用正在得到快速地發展,現在已經有幾十個可選的Web應用框架,在這些框架中比較流行的輕量級J2EE架構是Struts+Spring+Hibernate。本文研究的是利用“Struts+Spring+Hiber-nate”架構技術對電子商務系統的核心系統B2C所進行的設計。

一、Struts、Spring和Hibernate簡介

1.Struts MVC設計模式

Struts MVC(Model-View-Controller)把一個應用程序數據的輸入、處理、輸出處理操作流程劃分為模型層、視圖層和控制器。這三次的具體業務規則如下:模型層(Model),表示業務邏輯和業務規則,Struts MVC為模型提供了Action和ActionForm兩個對象。由ActionForm 進行數據封裝,Action進行業務處理,模型可以用JavaBean、Hibernate等組件技術來處理數據庫的訪問。視圖層(View),它就是我們通常所說的表示層。Struts的視圖是由JSP以及用戶自定義標簽組成,模型進行操作之后,其結果就是通過視圖來顯示的。在視圖中不建議進行大量的數據處理操作和業務操作,只是給用戶提供要處理的數據的顯示。控制器(Controller),它用于管理模型與視圖發生的交互。在Struts中主要的控制器組件有struts-contig.xml和ActionServlet。用戶進行數據處理時,它不能直接去執行模型,而是通過控制器來間接地實現。控制器控制視圖提交數據,然后由控制器控制相應的模型層進行數據處理操作。模型處理完數據后,再由控制器找到相應的視圖進行數據的顯示。

2.Spring框架

Spring是一個開源框架,它是一個以控制反轉(IOC)和面向切面(AOP)編程為基礎的輕量級框架。Spring通過控制反轉(inversion of contro1,IOC)這一機制實現降低代碼耦合度。當應用控制反轉時,對象都是被動地給予它們的依賴,而不是主動地去創建或尋找它們的依賴對象。同時Spring為面向切面編程提供了有效的支持,面向切面編程能使來自系統服務的單個的應用業務邏輯粘合起來。應用對象做它假定做的業務邏輯,其它的就什么也不做。Spring作為容器,可以管理自己的生命周期和配置應用對象。使用者可以通過配置原形來讓Bean彼此創建或者通過創建一個單一實例或者在每次需要的時候創建一個實例,當然這些原形要彼此互相關聯。

3.Hibernate框架

Hibernate是一種實現對象和關系之間映射(Object RelationMapping)的框架。它是一種新的ORM映射工具,它同時提供了從Java類到數據表的映射和數據查詢、恢復等機制,實現數據層對象的持久性。相對于使用JDBC和SQL來手工操作數據庫,使用Hibernate可以大大減少操作數據庫的工作量。并且Hi.bema可以和多種Web服務器以及應用服務器良好地集成。Hibernate是JDBC的輕量級對象封裝,這使得Java程序員可以使用面向對象的編程技術來操作關系數據庫,而不必花費大量的時間去更新和維護復雜的數據持久層.從而降低J2EE架構應用軟件開發的難度和復雜度。提高Java應用軟件的開發效率。

二、基于Struts、Spring、Hibernate的B2C電子商務系統的設計

1.B2C系統整體設計

根據電子商務系統的主要構成情況,筆者利用Struts+Spring+Hibernate架構技術對B2C系統的框架進行了設計,分別設計有表現層、業務邏輯層、持久層。

表現層——提供與用戶交互的界面。GUI(圖形用戶界面)和web頁面是表現層的兩個典型例子;業務邏輯層——該層借助了Spring,通過控制反轉、AOP應用、面向接口編程,來降低業務組件之間的耦合度,增強系統擴展性。spring框架是—個分層架構,由七個定義良好的模塊組成,其中最重要的模塊就是核心容器,核心容器定義了創建、配置和管理bean的方式,提供Spring框架的基本功能,核心容器的主要組件是BeanFactory,它是工廠模式的實現。BeanFactory使用控制反轉(IOC)模式將應用程序的配置和依賴、規范與實際的應用程序代碼分開。持久層——該層使用對象——關系映射(ORM)開源項目Hibernate,Hibernate為java提供了ORM持久化機制和查詢服務,通過在XML文件中定義對象和關系的映射關系。

層與層之間的關系特征:首先,每個層由一組相關的類或組件構成,共同完成特定的功能。其次,層與層之間存在自上而下的依賴關系,即上層組件會訪問下層組件的API,而下層組件不應該依賴上層組件。例如,表現層依賴于業務邏輯層,而業務邏輯層依賴于持久層。最后每個層對上層公開API,但具體的實現細節對外透明。當某一層的實現發生變化,只要它的API不變,不會影響其它層的實現。

2.B2C系統Struts表現層開發

Struts的核心控制器由ActionServlet類和Action類來實現。ActionServlet類在電子商務系統MVC模型中扮演中央控制器的角色,主要負責接收HTTP請求信息,它通過存儲在特定的XML文件中的struts-config.xml的配置映射信息把請求轉發給適當的Action對象,一個電子商務系統用戶請求就是通過ActionServlet被進行處理和轉發的。

下面是B2C電子商務系統中一個子模塊的Struts-config.xml文件片段的范例。Struts-config.xml是Struts的核心配置文件,要跟業務邏輯層相結合,同時也加載了Spring,其關鍵代碼如下:

<action-mappings>

<action path=”/order” type=”org.springframework.web.struts.DelegatingActionProxy”name=”OrderForm”>

</action>

</action-mappings>

<! - - = = Spring plugin - - >

<plug-in className=”org.springframework.web.struts.ContextLoaderPlugIn”>

<set-property property “contextConfigLocation”value=“/WEB-INF/classes/

applicationContext.xm1./WEB-INF/Classes/action-servlet.xml”/>

</plug-in>

3.Spring在B2C系統中的作用

為實現對Spring IOC容器的訪問,應用代碼可以通過如下兩個接口完成:⑴BeanFact-ory:開發者借助于配置文件(如XML或屬性文件)能夠實現對JavaBean的配置和管理。⑵ApplicationContext:構建在BeanFactory基礎之上,除了具有BeanFactory的功能之外,還添加了時間、聲明(非)容器提供的服務等其它功能。主要用于開發J2EE應用,這也是Spring推薦使用的接口。

首先我們看下B2C系統的ApplicationContext.xml文件片段,在文件中把數據庫訪問的代碼封裝成一個Bean,然后在XML文件里進行配置。在這里dataSource1這個Bean的生命周期分4個階段:

(1)實例化JavaBean(也就是dataSource1)。

(2)JavaBean實例的初始化,即通過IOC注入其依賴性。這一階段將完成JavaBean實例的初始化。

<bean id=”dataSourcel”

class=”org.apache.commons.dbcp.BasicDataSource”

destroy-method=”close”>

<property name=”driverClassName”

Value=”net.sourceforge.jtds.jdbc.Driver”/>

<property name=”url”value=”jdbc.jtds.sqlserver://172.18.1.8:

1433;DatabaseName=webShop”/>

<property name=”usename”value=”sa”/>

<property name=”password”value=”lqaz2wsx”/>

<property name=”maxldle”value=”5”/>

</bean>

(3)基于Spring應用對JavaBean實例的使用。一旦Spring創建,并初始化JavaBean實例后,應用就能夠使用JavaBean實例了,因此,借助于getBean方法,電子商務系統開發者就能夠在應用中進行使用。

(4)IOC容器銷毀JavaBean實例。

<bean id=”dataSourcel”

class=”org.apache.commons.dbcp.BasicDataSource”

destroy-method=”close”>

在不同的事務服務間切換,只會涉及到Spring配置文件的修改,而不會涉及到代碼的修改。

4.B2C系統Hibernate持久化層開發

Hibernate是連接Java對象模型和關系數據模型的橋梁,現在越來越多的Java開發人員把Hibernate作為企業應用和關系數據庫之間的中間件,以節省和對象持久化有關的三層以上的JDBC編程工作量。

(1)系統的Hibernate數據持久層功能實現可通過hibernate-sevice.xml進行Hibernate屬性的設置,設置內容如下:

<server>

<mbean code=”org.jboss.hibernate.jmx.Hibernate” name=”jboss.har:service=Hibernate”>

<attribute name=”DatasourceName”>java:/OracleDS

</attribute>

<attribute name=”Dialect”>net.sf.hibernate.dialect.Oracle9Dialect</attribute>

<attribute name=”SessionFactoryName”>

java:/hibernate/SessionFactory</attribute>

<attribute name=”CacheProviderClass”>

Net.sf.hibernate.cache.HashtableCacheProvider</attribute>

</mbean >

</server>

建立數據持久層時,就可以先為服務器中的數據表定義實體Bean(Entity Bean)了。

(2)Hibernate映射框架根據與每一對實體類和數據表相關的XML映射文件來實現ORM,通過Hibernate中的ant hibernate命令建立了每個實體類的XML文件。每一個描述數據表的實體類都有相應的XML文件,保證執行業務邏輯處理時通過會話Bean調用實體Bean,可以實現對服務器數據庫的無縫訪問。

(3)創建“對象——關系”映射文件。Hibernate采用XML格式的文件來指定對象和關系數據之間的映射,在運行時,Hibernate將根據這個映射文件來生成各種SQL語句。這一步所創建的文件,它用PromotionEvent類映射到PR0M0T10-NEVENT表,這個文件應和PromotionEv-ent.Class文件放在同一目錄下。

(4)通過Hibernate API編寫訪問數據庫的代碼。Hibernate對JDBC進行了封裝,提供了充分面向對象的API。

三、結束語

本文使用了輕量級J2EE架構Struts+Spring+Hibernate對電子商務系統B2C核心系統進行了設計,并分析了各個環節的關鍵技術和實現問題。使用這一技術設計的商務系統很好地把業務邏輯和表示層分離,這種分離使得系統不至于“牽一發而動全身”,同時,也便于業務邏輯模塊的重用。這三種技術結合起來充分利用它們的優勢,使得基于這三種技術的B2C商務系統應用框架開發簡潔、結構清晰,有很好的可擴展性和可維護性,適用于面向對象的設計與開發。另外,本文所開發的B2C電子商務系統特別適用在學校和大型商場等人員密集、且可能發生集中支付的組織內使用。

參考文獻:

[1]李偉鐮盧建朱:基于Struts和Hibernate的電子申購系統[J].計算機工程,2005,31(19):220-222

[2]楊明根鄭明秀廖浩德:Struts+Spring+Hibernate架構及開發方法[J].西南民族大學學報#8226;自然科學版,2007,(4):953-956

[3]廖福保張文梅:基于Struts-I-Spring-I-Hibernate框架的應用研究[J].廣東農工商職業技術學院學報,2007,(11):51-54

[4]李保華:基于Struts+EJB+Hibernate的授信風險管理系統設計[J].計算機與信息技術,2007,(4):87-89

[5]王非丁元林文昌:應用架構技術設計與開發電子商務系統[J].計算機工程與設計,2007(11):5507-5510

主站蜘蛛池模板: 久久久精品无码一二三区| 亚欧成人无码AV在线播放| 亚洲色图欧美在线| 日本高清免费不卡视频| 热re99久久精品国99热| 综合五月天网| www.av男人.com| 精品撒尿视频一区二区三区| 国产又色又刺激高潮免费看| 凹凸国产熟女精品视频| 亚洲精品制服丝袜二区| 久久人妻xunleige无码| 激情综合婷婷丁香五月尤物| 国产尤物视频在线| 真实国产乱子伦视频| 国产十八禁在线观看免费| 精品福利视频导航| 国产精品lululu在线观看| 99激情网| 国产日韩丝袜一二三区| 国产成人综合亚洲欧美在| 在线观看国产精品第一区免费| 婷婷午夜影院| 国产一级二级三级毛片| 午夜a视频| 四虎影院国产| 久久免费看片| 九色视频一区| 综合色在线| 日韩资源站| 国产精品香蕉| 欧美视频二区| 亚洲Aⅴ无码专区在线观看q| 日韩福利视频导航| 依依成人精品无v国产| 国产中文在线亚洲精品官网| 国产一级特黄aa级特黄裸毛片| 亚洲欧美国产视频| 91视频青青草| 免费av一区二区三区在线| 操美女免费网站| 日本久久网站| 国产情精品嫩草影院88av| 国产精品久久久久鬼色| 欧美日本在线播放| 国产精品自在在线午夜区app| 天天色综网| 国产精品99r8在线观看| 亚洲最新地址| 2020最新国产精品视频| 亚洲综合极品香蕉久久网| 精品国产自| 亚洲永久精品ww47国产| 亚洲天堂视频在线播放| 欧美日韩精品一区二区视频| 色哟哟国产精品一区二区| 国产在线第二页| 久青草免费在线视频| 免费国产福利| 好吊色妇女免费视频免费| 青草免费在线观看| 五月天久久综合国产一区二区| 国产免费人成视频网| 亚洲综合专区| 国禁国产you女视频网站| 99re精彩视频| 欧美亚洲一区二区三区在线| 国产精品视频公开费视频| 国产精品久久久久久影院| 日本高清免费不卡视频| 蜜桃臀无码内射一区二区三区| 亚亚洲乱码一二三四区| 5555国产在线观看| 欧美亚洲欧美区| 中文字幕亚洲精品2页| 2022国产无码在线| 88av在线看| 97se亚洲综合在线韩国专区福利| 91视频首页| 免费国产不卡午夜福在线观看| 免费观看无遮挡www的小视频| 亚洲精品手机在线|