国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

輕量級開發(fā)模式在企業(yè)級電子商務(wù)系統(tǒng)的應(yīng)用

2016-03-28 02:39:49陳沁華
無線互聯(lián)科技 2016年17期
關(guān)鍵詞:基類表示層客商

陳沁華

(邢臺鋼鐵有限責(zé)任公司,河北 邢臺 054000)

輕量級開發(fā)模式在企業(yè)級電子商務(wù)系統(tǒng)的應(yīng)用

陳沁華

(邢臺鋼鐵有限責(zé)任公司,河北邢臺054000)

針對邢鋼電子客商服務(wù)系統(tǒng)的客觀需求,筆者通過對多種開發(fā)框架進(jìn)行比較,最終選擇了Spring+iBatis 2.0這種輕量級的開發(fā)模式組合進(jìn)行系統(tǒng)開發(fā),文章分析了如何將客商服務(wù)系統(tǒng)的客觀需求同Spring框架有機(jī)結(jié)合起來,以完成系統(tǒng)的整體設(shè)計過程。通過對系統(tǒng)整體的框架結(jié)構(gòu)的分析,展現(xiàn)了采用Spring+iBatis這種開發(fā)模式進(jìn)行設(shè)計的優(yōu)點。

輕量級;開發(fā);Spring;框架

邢鋼客商服務(wù)系統(tǒng)是基于邢鋼原ERP-NC(集團(tuán)應(yīng)用信息化管理)系統(tǒng)而開發(fā)的電子商務(wù)系統(tǒng),以彌補(bǔ)邢鋼原ERPNC系統(tǒng)僅限于在邢鋼內(nèi)部的業(yè)務(wù)人員使用,由于系統(tǒng)是基于原ERP系統(tǒng)進(jìn)行項目化二次開發(fā),所以必須在原有系統(tǒng)數(shù)據(jù)結(jié)構(gòu)下進(jìn)行,所以面臨著開發(fā)框架及相應(yīng)技術(shù)選擇與運(yùn)用的一些問題。

相對成熟的Spring作為一個輕量級的架構(gòu)解決方案,在對程序產(chǎn)生最小侵入性的同時,使開發(fā)者通過簡單可行的解決方法來解決問題;ibatis作為半自動化的數(shù)據(jù)持久層,為開發(fā)者提供靈活快捷數(shù)據(jù)訪問途徑?;谙到y(tǒng)的需求和客觀條件,綜合考慮上述因素,選擇Spring+iBatis開發(fā)邢鋼客商服務(wù)系統(tǒng)是可行的,而且基于企業(yè)級的開發(fā)也是一個摸索和創(chuàng)新的過程。

1 系統(tǒng)框架的設(shè)計過程

當(dāng)前,在進(jìn)行J2EE平臺的Java Web相關(guān)開發(fā)的最常用到的開發(fā)框架的組合模式就是Struts+Spring+Hibernate,也就是俗稱的“SSH”。其中,就層次結(jié)構(gòu)而言,持久層使用Hibernate進(jìn)行數(shù)據(jù)庫相關(guān)操作,業(yè)務(wù)邏輯層使用Spring,而Struts代表了表示層使用Struts的MVC結(jié)構(gòu)[1]。

從開發(fā)的角度來看,Struts進(jìn)行系統(tǒng)開發(fā)是最穩(wěn)妥的選擇。但Struts也受到了前所未有的挑戰(zhàn)。目前,新興的MVC框架從性能上講已經(jīng)超過了Struts,如SpringMVC,Webwork2。這些框架設(shè)計更精密,擴(kuò)展性更強(qiáng),適用性更廣。所以說,從歷史遺留問題和開發(fā)人員的偏好來講,在表示層使用Struts是當(dāng)今Web開發(fā)的“潮流”。但是,如果從技術(shù)和發(fā)展趨勢角度來看,Spring MVC,Webwork2這些新興的MVC框架更適合于框架的構(gòu)建。因此,基于這個原因,客商服務(wù)系統(tǒng)在表示層并沒有使用Struts,而是選擇了Spring MVC[2]。

Hibernate/OJB會根據(jù)制定的存儲邏輯,自動生成對應(yīng)SQL并調(diào)用JDBC接口加以執(zhí)行,程序員甚至不需要對SQL的熟練掌握,Hibernate的O/R Mapping實現(xiàn)了POJO和數(shù)據(jù)庫表之間的映射,以及SQL的自動生成和執(zhí)行,使Hibernate對數(shù)據(jù)庫結(jié)構(gòu)提供了較為完整的封裝[3]。

iBatis并不會為程序員在運(yùn)行期自動生成SQL執(zhí)行,具體的SQL仍需要程序員編寫,然后通過映射配置文件,將SQL所需的參數(shù),以及返回的結(jié)果字段映射到指定POJO,而iBatis的著力點,則在于POJO與SQL之間的映射關(guān)系。

系統(tǒng)之所以放棄Hibernate而使用iBatis,原因就在于iBatis可以給開發(fā)帶來更大的自由性。因為系統(tǒng)屬于二次開發(fā),系統(tǒng)數(shù)據(jù)處理量巨大,性能要求極為苛刻,那么iBatis的靈活性將比Hibernate更適合。此外,由于無法對數(shù)據(jù)庫結(jié)構(gòu)做到控制和修改一個查詢可能要關(guān)聯(lián)十幾個表,并產(chǎn)生大量的數(shù)據(jù),這意味著我們必須通過經(jīng)過高度優(yōu)化的SQL語句(或存儲過程)才能達(dá)到系統(tǒng)性能設(shè)計指標(biāo)。在這種情況下iBatis會有更好的可控性和表現(xiàn)。

2 客商服務(wù)系統(tǒng)的實現(xiàn)過程

2.1Spring配置文件

Spring的核心是IoC機(jī)制,其框架的構(gòu)建是通過完成其配置文件的bean而實現(xiàn)的。Spring的各個配置文件分別對應(yīng)Web體系結(jié)構(gòu)的不同層次,例如,Web.xml是Spring的入口配置文件,onfig.xml對應(yīng)表示層相關(guān)配置,application Context.xml是業(yè)務(wù)層的配置信息,data Access Context.xml是與持久層相關(guān)的。

2.2基類

系統(tǒng)的基類實現(xiàn)主要包括控制器基類Default Secureity MultiAction Controller,邏輯層基類Default Logic,以及VO基類Abstract Form Bean。所有功能點的控制器,邏輯層業(yè)務(wù)類,以及VO類都要繼承它們。其中,控制器基類和VO基類都是抽象類,主要的業(yè)務(wù)流程框架在其內(nèi)部定義,每個功能點的相應(yīng)的類都要繼承它們,并實現(xiàn)它們的抽象方法,從而實現(xiàn)模板方法模式,相關(guān)的業(yè)務(wù)框架放到基類中去實現(xiàn)。這樣就可以保證所有的功能點的控制器和VO的操作流程都是一致的,使開發(fā)人員不用去關(guān)心具體操作是怎么進(jìn)行的,減少了開發(fā)人員開發(fā)功能點的工作量。

2.3功能點實現(xiàn)

每一個功能點一般都由6個包構(gòu)成,分別為:(1)controller:功能點控制器包,包里有個控制器類;(2)logic:業(yè)務(wù)邏輯層包,包里有個業(yè)務(wù)邏輯類;(3)VO:VO包,包里包含一個或多個變更指令(Variation Order,VO)類;(4)check:頁面check包,包含頁面check類;(5)config:頁面配置信息包,包含一個或幾個頁面配置信息文件,頁面繪制器通過讀取這個文件進(jìn)行頁面繪制;(6)map:iBatis的SQL語句配置信息。

2.4系統(tǒng)結(jié)構(gòu)

在開發(fā)工作中,我們將系統(tǒng)按照請求的處理過程分為4個層次,JSP Page層,Controller層,Logic層和Dao層。

JSP Page層是數(shù)據(jù)展現(xiàn)層,是與用戶進(jìn)行會話、傳遞請求、展示數(shù)據(jù);Controller層處理用戶的請求、如處理該請求需要的操作包含業(yè)務(wù)操作或數(shù)據(jù)庫操作則去后面兩層中進(jìn)行處理,否則返回。另外系統(tǒng)在本層中進(jìn)行了權(quán)限控制、日志記錄等操作,使得開發(fā)人員不必考慮這些問題,體現(xiàn)了Spring的優(yōu)點。Logic層進(jìn)行業(yè)務(wù)操作,類似NC的BO。Dao層進(jìn)行數(shù)據(jù)庫操作,類似NC的DMO,在此處使用了iBatis來實現(xiàn)持久化操作,使得對數(shù)據(jù)庫的操作簡單化。

3 結(jié)語

結(jié)合邢鋼電子客商服務(wù)系統(tǒng)的客觀需求,通過將已有的多種開發(fā)框架進(jìn)行比較,最終選擇了Spring+iBatis 2.0這種輕量級的開發(fā)模式組合進(jìn)行系統(tǒng)開發(fā)。Spring是全面的和模塊化的。Spring有分層的體系結(jié)構(gòu),這意味著開發(fā)人員能選擇使用它孤立的任何部分,它的架構(gòu)仍然是內(nèi)在穩(wěn)定的,作為一種較新的J2EE平臺Java Web開發(fā)的框架,Spring框架和對象關(guān)系映射(Object Relational Mapping,ORM)工具iBatis對典型的Web應(yīng)用的分層體系結(jié)構(gòu)有較好的支持。對于開發(fā)人員來說,既可以選擇Spring framework提供的某個模塊進(jìn)行工程的開發(fā),也可以使整個工程都使用Spring進(jìn)行開發(fā),以減少開發(fā)人員對各種不同框架的再學(xué)習(xí)和適應(yīng)過程。通過對Spring的IoC機(jī)制,面向切面編程(Aspect Oriented Programming,AOP)的特點進(jìn)行分析描述,結(jié)合Web應(yīng)用的分層結(jié)構(gòu),就Spring框架提供的表示層的MVC框架,業(yè)務(wù)層的事務(wù)管理機(jī)制,以及持久層的與其他ORM工具的無縫結(jié)合的分析,展現(xiàn)了Spring的強(qiáng)大之處[4]。

[1]JOHNSON R.Spring框架高級編程[M].北京:機(jī)械工業(yè)出版社,2006.

[2]李剛.Spring, Struts, Webwork2三者M(jìn)VC比較[EB/OL].(2016-09-10)[2005-08-03].http://www.csdn.net/.

[3]李剛.輕量級J2EE企業(yè)應(yīng)用實戰(zhàn)-STRUTS+SPRING+HIBERNATE整合開發(fā)[M]. 北京:電子工業(yè)出版社,2007.

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

Application of lightweight development pattern in the e-commerce system of enterprise

Chen Qinhua
(Xingtai Iron and Steel Co., Ltd., Xingtai 054000, China)

In view of the objective demand of electronic merchant service system of Xingtai steel, through the comparison of many kinds of development frame which had carried on, author fnally choosen the Spring+iBatis 2.0 this kind of lightweight development pattern combinations to carry on the system development.The paper analyzed how to combine the merchant service system's objective demand with the Spring frame organic synthesis to completed the overall design process of system. Through the analysis of whole portal frame construction of system, unfolded the merit of using the Spring+ iBatis this kind of development pattern to carry on the design.

lightweight; development; Spring; frame

陳沁華(1972— ),男,湖北大冶,本科,工程師;研究方向:企業(yè)電子商務(wù)信息系統(tǒng)設(shè)計與開發(fā)。

猜你喜歡
基類表示層客商
基于C#面向?qū)ο蟪绦蛟O(shè)計的封裝、繼承和多態(tài)分析
基于Spring的企業(yè)級Web項目架構(gòu)設(shè)計研究
軟件(2019年6期)2019-10-08 06:27:21
展氏菜行
故事會(2019年8期)2019-04-20 12:48:04
第四屆世界客商大會在梅州開幕
客家文博(2016年1期)2016-11-15 03:54:24
這一瓶
幸?!傋x(2016年9期)2016-11-08 17:23:47
ASP.NET三層構(gòu)架解析
空戰(zhàn)游戲設(shè)計實例
基于SSH框架科研管理系統(tǒng)的設(shè)計
一種基于用戶興趣的STC改進(jìn)算法
虛機(jī)制在《面向?qū)ο蟪绦蛟O(shè)計C++》中的教學(xué)方法研究
监利县| 望城县| 汾西县| 阜城县| 长垣县| 朔州市| 庆云县| 历史| 沈丘县| 金秀| 建阳市| 武宣县| 渭南市| 晋宁县| 米易县| 正安县| 且末县| 夏津县| 宁化县| 宁城县| 探索| 嘉禾县| 莆田市| 深州市| 敦煌市| 阳西县| 汾西县| 宁明县| 杭锦后旗| 南川市| 和顺县| 思茅市| 阿荣旗| 建始县| 甘泉县| 忻州市| 凌海市| 林西县| 阜平县| 泾川县| 东莞市|