劉方



摘要:針對農特產品網上銷售需求,基于SSH框架構建了一款農特產品網上銷售系統。采用SSH多層整合框架技術,通過清晰分層結構與松散耦合設計,對系統主要功能與整體架構進行了開發與實現。應用結果顯示,該系統運行穩定、復用性強、便于維護,能滿足消費者購買過程中各種需求,為特色農產品產銷對接及流通提供良好服務。該系統開發表明,采用SSH架構設計模式,使程序層次更加清晰,且能簡化開發過程并易于控制。
關鍵詞關鍵詞:農產品銷售;SSH;MVC;B/S結構;電商平臺
DOIDOI:10.11907/rjdk.172246
中圖分類號:TP319
文獻標識碼:A文章編號文章編號:16727800(2017)011009404
0引言
隨著信息技術發展,“互聯網+”模式也逐漸融入傳統農業,特別是農村電商平臺,在提升特色農產品產銷對接與流通效率,扶持農村青年創業,以及幫助大學生村官探索村級經濟產銷模式轉型方面,正發揮著積極作用。
本文基于SSH架構設計并實現了一款農特產品網上銷售系統,以大別山區生態綠色農特產品為產銷服務對象,旨在通過B2C電商平臺形式,為農村扶貧開發與農產品產銷配送提供新方式與手段。
1系統功能
構建農特產品網上銷售系統,其功能應充分展示農特產品信息、滿足客戶購買需求,為順利完成購銷雙方交易活動提供良好服務。該系統為基于B/S結構的Web系統,分為前、后臺2部分。
1.1前臺模塊
前臺模塊用戶角色包括瀏覽用戶與會員用戶。實現主要功能有:
(1)商品瀏覽。實現商品類別分級顯示,提供人氣商品(按商品瀏覽量多少排序)、熱銷商品(銷量較多)及推薦商品展示。
(2)會員管理。使用購物車功能,用戶需要驗證身份。注冊會員并登錄后,才可進行購物及生成訂單系列操作。
(3)購物車管理。包括保存商品購買信息,調整某商品訂單條目信息,以及創建購物訂單、實時網上支付等。
農特產品網上銷售系統前臺功能結構如圖1所示。
圖1農特產品網上商城前臺功能結構
1.2后臺模塊
系統后臺功能為管理員設計,主要提供類別管理、商品管理、訂單管理等3大功能。
管理員登錄后,可進行商品類別與商品信息維護(添、刪、改、查),上傳農特產品相關圖片、介紹,修改、查詢訂單狀態以及自定義查詢等操作。
農特產品網上銷售系統后臺功能結構如圖2所示。
2系統架構
2.1SSH框架
本系統實現基于SSH輕量級架構,它由J2EE的3個主要框架技術組合而成。
(1)Struts框架。該框架基于MVC設計模式,可將軟件功能分層化,通過控制器將視圖與訪問控制分離,使模塊結構更加清晰[1]。
(2)Spring框架。該框架優勢是分層架構技術,允許對其所提供的7個模塊自主選擇合適模塊[2]。Spring核心理念是依賴注入,即將程序之間依賴關系轉移到外部容器中。程序不再自己建立對象,而是由Spring容器根據需要動態地建立并注入對象,簡化系統開發難度。
(3)Hibernate框架。該框架基于對象/關系映射(ORM)技術[3]。通過映射機制,將對數據庫中表記錄處理變成對Java對象的處理,使程序員可將對數據庫操作轉換成面向對象語言的操作,減輕編程工作量。
SSH架構融合了三者優勢,Struts MVC模式,可方便地搭建系統整體架構;ORM框架,能直接持久化復雜的Java對象,將面向對象操作轉化為底層SQL操作;IoC機制,提供強大Bean工廠容器,通過配置方式來描述對象及依賴關系,實現了層間松耦合。SSH是目前應用較廣的Web應用開發框架。
2.2系統分層
系統在整體設計上,采用了SSH分層構架技術,分為視圖表示層、業務層、數據持久層(PO)。其中業務層又細分為:Web控制層(Struts的Action)、業務邏輯層、數據操作層(DAO)。各層相互獨立,分工明確,層之間通過通信接口聯系。分層設計架構如圖3所示。
圖3系統分層架構
分層架構中,Struts將頁面與訪問控制分離,當它要執行控制邏輯時,就調用Action模塊,Action在處理中若要訪問數據庫,則通過負責實現業務邏輯的Service組件。而Service需調用DAO接口實現類中的方法,才直接操作數據庫[4]。Hibernate將數據庫表持久化為POJO類,DAO類再以面向對象方式從POJO類中讀取數據[5]。整合框架以Spring為核心,所有組件包括DAO、Service與Action,都由Spring的ApplicationContext.xml文件進行配置管理。
3系統設計與實現
3.1數據庫
根據系統業務功能分析,設計出系統數據庫主要數據表:customer_info表(會員)、order_info表(訂單)、order_Detail表(訂單明細)、product_info表(商品)、productsort_info表(商品類別)、Admin_info表(管理員)、uploadfile_info表(上傳文件)。上述表關聯關系如圖4所示。
圖4系統數據表關系
3.2視圖表示層
視圖表示層是Web前端界面,采用HTML、JSP、Struts標簽加以實現,在這些JSP文件中不需進行任何實際業務處理。
3.3業務層
業務層主要以Spring為集成環境[6],整合以下各層:
3.3.1Web控制層endprint
即指Struts的Action業務控制層,其功能是當用戶請求到達Struts控制器核心,根據Struts.xml配置信息,轉發給業務控制器Action完成數據處理,并根據處理結果,決定跳轉至相應頁面。Action并不承擔直接處理業務邏輯,而是調用業務邏輯層組件完成處理。
Web層實現:①創建Action類(根據對用戶請求處理邏輯編寫);②配置Struts.xml文件,讓程序執行成功后跳轉到對應頁面;③將Struts2的Action類創建交給Spring;④在Action對象中,通過Spring的IoC將ordersService業務組件注入。
3.3.2業務邏輯層
業務邏輯層通常包括Service接口與接口實現類。其職責是提供處理應用程序業務邏輯與業務校驗,需要依賴調用DAO接口方法對數據庫執行操作。
Service組件實現:創建相應Service接口及接口實現類,在Spring的ApplicationContext.xml文件中進行配置。
3.3.3數據操作層
數據操作層通常包括DAO接口與接口實現類。DAO核心思想是將底層數據庫訪問操作與業務層邏輯分開,Dao組件封裝了數據庫增、刪、改、查等操作細節,所有數據庫訪問都通過Dao組件完成。
DAO實現:首先創建相應DAO接口與接口實現類,在Spring的ApplicationContext.xml文件中進行配置。
下面以“結算下訂單”為例,說明實現上述業務時各組件調用關系:①用戶點擊“Submit”按鈕,該請求到達服務器,FilterDispatcher作為控制器中心,負責分配工作,決定調用Account.java,并回調其execute()方法,實現下訂單功能;②AccountAction類調用業務層OrdersService接口save()方法,該方法則調用DAO層OrdersDAOImpl類save(OrdersVo new Order)方法,完成數據訪問,實現將訂單項信息存入數據表;③OrdersDAO完成下訂單操作后,依次返回信息;④核心控制器根據返回的success以及struts.xml文件配置,找到order_list.jsp文件,執行該文件,轉換成HTML頁面(訂單列表),傳遞給瀏覽器。各層組件調用時序如圖5所示。
圖5訂單功能實現時序
上例中,Spring的IOC容器通過配置文件,對AccountAction對象、OrdersServiceImpl對象、OrdersDAOImpl對象生成進行管理,并通過依賴注入,將OrdersDAO注入到OrdersService中,再將OrdersService注入到AccounAction中,實現無縫集成[7]。
配置在ApplicationContext.xml進行依賴注入部分代碼如下[8]:
ref bean="ordersDAO" />
3.4數據持久層
數據持久層設計在MyEclipse運行環境下通過Hibernate框架完成。
首先創建與數據表對應的Hibemate持久化類及與持久化類對應的映射文件。在IoC容器中,對上述映射文件進行注冊。接著實現數據庫連接。Spring與Hibernate整合后,Spring容器會利用LocalSessionFactoryBean自動創建本地Hibernate的sessionFactory實例對象并接管DAO,并可為其注入dataSource引用[9]。通過ApplicationContext.xml文件配置,dataSource(數據源)被注入到sessionFactory中,sessionFactory被注入到DAO中。
以“結算下訂單”為例,先在項目文件夾下domain包中,創建與數據表Orders表對應的持久化類OrdersVo.java與映射文件Ordersvo.hhm.xml,該表中存儲有會員訂單信息。由于DAO注入了sessionFactory對象,而sessionFactory中保存有當前數據庫配置信息,因此用OrdersDAOImp類調用HihernateTemplate模板save(newOrder)方法,即可實現將持久化類OrdersVo.java中數據,保存于數據表Orders中對應記錄項[10]。
ApplicationContext.xml部分代碼如下:
<!配置Hihernatese sessionFactory bean>
class="org.springframework.orm.hiber- nate3.LocalSessionFactoryBean">
org.hibernate.dialect.MySQLDialect
<!配置映射文件>
該系統實現部分界面如圖6、圖7所示。
圖6商城前臺主界面
圖7商城后臺系統界面
4結語
本文針對農特產品網上銷售需求,基于Struts2+Spring+Hibernate整合框架技術,設計并實現了一款農特產品網上銷售系統。系統開發過程表明,運用SSH架構技術,不僅簡化了系統開發過程,也使程序設計更加合理,運行更加穩定。
參考文獻參考文獻:
[1]孟凡奇,曲朝陽,侯松林.SSH架構在導師實驗室綜合管理系統開發中的應用[J].計算機應用與軟件,2013,30(8):174177.
[2]余穎,李曉峋,歐陽純萍.一種SSH框架的在線程序自動評判系統的設計與實現[J].南華大學學報:自然科學版,2012,26(4):6568.
[3]堪湘倩,狄文輝.基于J2EE輕量級框架的移動卡類渠道銷售管理系統[J].計算機工程與設計,2009(17):9597.
[4]鄭阿奇.Java EE教程[M].北京:清華大學出版社,2012.
[5]趙彥.JavaEE框架技術進階式教程[M].北京:清華大學出版社,2011.
[6]霍迎秋.基于SSH架構的農產品信息交換平臺[J].實驗室研究與探索,2013,32(5):6366.
[7]趙曉君,崔建濤,鄧璐娟,等.基于SSH2和jQuery的大學生校園綜合服務平臺的設計與實現[J].鄭州輕工業學院學報:自然科學版,2014,29(3):100104.
[8]馬慧斌.JavaEE框架技術研究及其在OAO電子商務模式中的實現[D].西安:長安大學,2013.
[9]李雷孝,劉曉軍,劉利民,等.基于SSH整合框架的科研項目管理系統的設計與實現[J].內蒙古農業大學學報,2012,33(1):210214.
[10]劉勇軍,王電鋼.Java EE項目應用開發[M].北京:電子工業出版社,2012.
責任編輯(責任編輯:何麗)endprint