亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于“Struts+Spring+Hibernate”架構(gòu)技術(shù)的B2C電子商務(wù)系統(tǒng)的設(shè)計

        2008-12-31 00:00:00陶祥亞
        商場現(xiàn)代化 2008年19期

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

        [關(guān)鍵詞] Struts+Spring+Hibernate 電子商務(wù)系統(tǒng) 設(shè)計

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

        一、Struts、Spring和Hibernate簡介

        1.Struts MVC設(shè)計模式

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

        2.Spring框架

        Spring是一個開源框架,它是一個以控制反轉(zhuǎn)(IOC)和面向切面(AOP)編程為基礎(chǔ)的輕量級框架。Spring通過控制反轉(zhuǎn)(inversion of contro1,IOC)這一機制實現(xiàn)降低代碼耦合度。當應(yīng)用控制反轉(zhuǎn)時,對象都是被動地給予它們的依賴,而不是主動地去創(chuàng)建或?qū)ふ宜鼈兊囊蕾噷ο蟆M瑫rSpring為面向切面編程提供了有效的支持,面向切面編程能使來自系統(tǒng)服務(wù)的單個的應(yīng)用業(yè)務(wù)邏輯粘合起來。應(yīng)用對象做它假定做的業(yè)務(wù)邏輯,其它的就什么也不做。Spring作為容器,可以管理自己的生命周期和配置應(yīng)用對象。使用者可以通過配置原形來讓Bean彼此創(chuàng)建或者通過創(chuàng)建一個單一實例或者在每次需要的時候創(chuàng)建一個實例,當然這些原形要彼此互相關(guān)聯(lián)。

        3.Hibernate框架

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

        二、基于Struts、Spring、Hibernate的B2C電子商務(wù)系統(tǒng)的設(shè)計

        1.B2C系統(tǒng)整體設(shè)計

        根據(jù)電子商務(wù)系統(tǒng)的主要構(gòu)成情況,筆者利用Struts+Spring+Hibernate架構(gòu)技術(shù)對B2C系統(tǒng)的框架進行了設(shè)計,分別設(shè)計有表現(xiàn)層、業(yè)務(wù)邏輯層、持久層。

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

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

        2.B2C系統(tǒng)Struts表現(xiàn)層開發(fā)

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

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

        <action-mappings>

        <action path=”/order” type=”org.springframework.web.struts.DelegatingActionProxy”name=”O(jiān)rderForm”>

        </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系統(tǒng)中的作用

        為實現(xiàn)對Spring IOC容器的訪問,應(yīng)用代碼可以通過如下兩個接口完成:⑴BeanFact-ory:開發(fā)者借助于配置文件(如XML或?qū)傩晕募?能夠?qū)崿F(xiàn)對JavaBean的配置和管理。⑵ApplicationContext:構(gòu)建在BeanFactory基礎(chǔ)之上,除了具有BeanFactory的功能之外,還添加了時間、聲明(非)容器提供的服務(wù)等其它功能。主要用于開發(fā)J2EE應(yīng)用,這也是Spring推薦使用的接口。

        首先我們看下B2C系統(tǒng)的ApplicationContext.xml文件片段,在文件中把數(shù)據(jù)庫訪問的代碼封裝成一個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應(yīng)用對JavaBean實例的使用。一旦Spring創(chuàng)建,并初始化JavaBean實例后,應(yīng)用就能夠使用JavaBean實例了,因此,借助于getBean方法,電子商務(wù)系統(tǒng)開發(fā)者就能夠在應(yīng)用中進行使用。

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

        <bean id=”dataSourcel”

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

        destroy-method=”close”>

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

        4.B2C系統(tǒng)Hibernate持久化層開發(fā)

        Hibernate是連接Java對象模型和關(guān)系數(shù)據(jù)模型的橋梁,現(xiàn)在越來越多的Java開發(fā)人員把Hibernate作為企業(yè)應(yīng)用和關(guān)系數(shù)據(jù)庫之間的中間件,以節(jié)省和對象持久化有關(guān)的三層以上的JDBC編程工作量。

        (1)系統(tǒng)的Hibernate數(shù)據(jù)持久層功能實現(xiàn)可通過hibernate-sevice.xml進行Hibernate屬性的設(shè)置,設(shè)置內(nèi)容如下:

        <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>

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

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

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

        (4)通過Hibernate API編寫訪問數(shù)據(jù)庫的代碼。Hibernate對JDBC進行了封裝,提供了充分面向?qū)ο蟮腁PI。

        三、結(jié)束語

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

        參考文獻:

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

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

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

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

        [5]王非丁元林文昌:應(yīng)用架構(gòu)技術(shù)設(shè)計與開發(fā)電子商務(wù)系統(tǒng)[J].計算機工程與設(shè)計,2007(11):5507-5510

        a黄片在线视频免费播放| 亚洲女同精品一区二区久久| 国产精品麻豆A在线播放| 亚洲国产精品久久久婷婷| 亚洲av无码乱码在线观看富二代| 蜜臀久久99精品久久久久久小说| 亚洲高清有码在线观看| 亚洲狠狠久久五月婷婷| 一本大道av伊人久久综合| 亚洲av综合色区无码一二三区 | 久久精品国产字幕高潮| 五月婷婷俺也去开心| 99精品视频69v精品视频免费| 一个人午夜观看在线中文字幕| 无码人妻一区二区三区在线| 久久精品国产亚洲一区二区| 在线亚洲AV不卡一区二区| 成人一区二区三区激情视频| 国产av无码专区亚洲avjulia | 成人区人妻精品一区二区不卡网站| 日日人人爽人人爽人人片av| av福利资源在线观看| 尤物在线观看一区蜜桃| 久久精品女人天堂av| 欧美精品久久久久久三级| 91久久香蕉国产熟女线看| 品色堂永远免费| 欧美日韩国产综合aⅴ| 亚洲精品乱码久久麻豆| 亚洲色偷偷偷综合网| 乱人伦中文字幕成人网站在线| 国产 无码 日韩| 日本中文字幕婷婷在线| 久热这里只有精品视频6| 久久国产精品免费一区二区| 国产一级黄色片在线播放| 欧美日韩国产精品自在自线| 亚洲a∨天堂男人无码| 亚洲一区二区三区在线激情 | 国产黑丝美女办公室激情啪啪 | 亚洲一区二区三区在线视频|