面試電商手冊_第1頁
面試電商手冊_第2頁
面試電商手冊_第3頁
面試電商手冊_第4頁
面試電商手冊_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

電商項目介紹2.電商行業(yè)技術(shù)特點技術(shù)新:(NoSql推廣首在社區(qū)網(wǎng)站和電商項目),發(fā)展快,需求推動技術(shù)的革新。技術(shù)范圍廣:除了java,像淘寶前端還使用了PHP,數(shù)據(jù)庫MySQL或者oracle,nosql,服務(wù)器端使用Linux,服務(wù)器安全、系統(tǒng)安全分布式:以前是在一臺機器上做運算,現(xiàn)在是分散到很多機器上,最后匯總起來。(集中式向分布式進行考慮)由需求來推動高并發(fā)、集群、負載均衡、高可用:由并發(fā)問題采用集群進行處理,其中,集群會涉及服務(wù)器的主從以及分布問題,使用負載均衡。(權(quán)重高低)高可用是對用戶而言,用戶的服務(wù)不中斷(系統(tǒng)升級,服務(wù)不中斷,淘寶每周更新2次)。海量數(shù)據(jù):雙11,570億的背后,訂單有多少?瀏覽次數(shù)有多少?商品會有多少?活動相關(guān)數(shù)據(jù)?業(yè)務(wù)復(fù)雜:不要簡單的認為是:商品展示出來后,加入購物車后購買就完成了。后臺特別復(fù)雜,比如優(yōu)惠(包郵、滿減)系統(tǒng)安全:系統(tǒng)上線必須通過系統(tǒng)安全部門審核通過。前年CSDN數(shù)據(jù)泄露。快捷酒店數(shù)據(jù)泄露(通過身份證就可以查看你的開房記錄)。近幾年,安全意識逐步在提高。電商行業(yè)的一些概念 1、B2C:商家對客戶,京東、當(dāng)當(dāng)、發(fā)展為B2C平臺,天貓(B2C平臺淘寶商城由馬云提出,率先發(fā)展為平臺),1號店也是(在上海) 2、B2B:商家對商家,阿里巴巴(不零售,只批發(fā),淘寶很多商家都會去阿里巴巴進貨); 3、C2C:個人對個人,淘寶市場,淘寶,QQ商城;系統(tǒng)功能 本商城系統(tǒng)是一個綜合性的B2C平臺,類似京東商城、天貓商城。會員可以在商城瀏覽商品、下訂單,以及參加各種活動。商家可以在入住淘淘商城,在該平臺上開店出售自己的商品,并且得到淘淘商城提供的可靠的服務(wù)。管理員、運營可以在平臺后臺管理系統(tǒng)中管理商品、訂單、會員等??头梢栽诤笈_管理系統(tǒng)中處理用戶的詢問以及投訴。 首先我們要有商品,管理員可以在系統(tǒng)中管理商品,用戶可以查看商品。 商品多了之后要有類目模塊,管理員可以管理類目信息,用戶可以根據(jù)類目檢索商品。 有了商品之后,要有人(會員)去買東西,普通用戶注冊為會員,會員可以登錄到系統(tǒng)管理自己的信息(密碼等) 買了之后會生成訂單,會員可以購買商品并且可以下單,管理員可以管理訂單。 有了訂單之后需要支付(在線支付/貨到付款) 這樣,我們就可以把整個電商項目的功能記清楚了!分布式系統(tǒng)架構(gòu)左圖為分布式系統(tǒng)架構(gòu),右圖為傳統(tǒng)架構(gòu)! 各個系統(tǒng)說明: 后臺管理系統(tǒng):管理商品、訂單、類目、商品規(guī)格屬性、用戶管理以及內(nèi)容發(fā)布等功能。 前臺系統(tǒng):用戶可以在前臺系統(tǒng)中進行注冊、登錄、瀏覽商品、首頁、下單等操作。 會員系統(tǒng):用戶可以在該系統(tǒng)中查詢已下的訂單、收藏的商品、我的優(yōu)惠券、團購等信息。 訂單系統(tǒng):提供下單、查詢訂單、修改訂單狀態(tài)、定時處理訂單。 搜索系統(tǒng):提供商品的搜索功能。 單點登錄系統(tǒng):為多個系統(tǒng)之間提供用戶登錄憑證以及查詢登錄用戶的信息。談到分布式架構(gòu),我們必須對比傳統(tǒng)架構(gòu)才能彰顯其優(yōu)勢。 最為明顯的一點,在傳統(tǒng)的架構(gòu)中,如果某個功能需要進行維護,那么我們必須停掉整個服務(wù),這對于公司的運營會造成損失。分布式系統(tǒng)在核心功能模塊使用單獨服務(wù)器,維護部分模塊不影響用戶的其他操作。 在海量數(shù)據(jù)處理方面,傳統(tǒng)架構(gòu)顯得比較乏力;分布式系統(tǒng)架構(gòu)采用服務(wù)器集群,使用負載均衡,海量數(shù)據(jù)處理游刃有余! 在性能(檢索)以及維護方面,分布式系統(tǒng)架構(gòu)也有較為明顯的優(yōu)勢。6.本系統(tǒng)人員配置情況l產(chǎn)品經(jīng)理:3人,確定需求以及給出產(chǎn)品原型圖。l項目經(jīng)理:1人,項目管理。l前端團隊:3人,根據(jù)產(chǎn)品經(jīng)理給出的原型制作靜態(tài)頁面。l后端團隊:20人,實現(xiàn)產(chǎn)品功能。l測試團隊:3人,測試所有的功能。l運維團隊:2人,項目的發(fā)布以及維護。7.開發(fā)流程 此圖不做詳細解釋(就業(yè)指導(dǎo)課已進行詳細說明,注意整個流程中容易被問到的問題)8.后臺開發(fā)環(huán)境 需要注意,在幾個環(huán)境中,預(yù)發(fā)布環(huán)境和生產(chǎn)環(huán)境幾乎一樣,開發(fā)環(huán)境和測試環(huán)境是獨立存在的,每一個階段的活是由對應(yīng)的工作人員來負責(zé)的。此外,我們還需要熟悉SVN主干、分支、標(biāo)簽開發(fā)過程流程: 整個開發(fā)沿著主線進行,在一個版本定型后,前一個版本出現(xiàn)bug,那么此時會對bug進行修復(fù),投入使用的依舊是之前定型的那個版本,待前一個版本的bug修復(fù)好了之后,會定義一個新的版本,主線不會改變,如果改動不大,那么只需修訂問題,繼續(xù)沿用此版本(1.0.x),只有出現(xiàn)較大改動時,才會升級一個新的版本號(1.1.x)。所有動作,交替進行,沿主線向前推進!9.涉及技術(shù)lSpring、SpringMVC、MybatislJSP、JSTL、jQuery、jQueryplugin、EasyUI、KindEditor(富文本編輯器)、CSS+DIVlRedis(緩存服務(wù)器)lLucene、Solr(搜索)lhttpclient(調(diào)用系統(tǒng)服務(wù))lMysqllNginx(web服務(wù)器)lQuartz(定時任務(wù))lRabbitMQ(消息隊列)技術(shù)詳解見其它章節(jié),未接觸技術(shù)點(標(biāo)背景色技術(shù)點)將在本項目后續(xù)內(nèi)容中進行介紹。10.開發(fā)工具和環(huán)境lEclipse4.4.1lMaven3.2.3lTomcat7.0.47(MavenTomcatPlugin)lJDK1.7lMysql5.6lNginx1.5.1lRedis2.8.9lWin7操作系統(tǒng)lSVN(版本管理)此章節(jié),需要注意所有開發(fā)工具的版本號要對應(yīng)(一致),否則會出現(xiàn)沖突問題,面試大忌!(常識:電商項目火起來的時間不是很久,在開發(fā)的時候,很多開發(fā)工具和環(huán)境不像之前那些傳統(tǒng)系統(tǒng)那么老舊,這點一定要引起注意!)電商項目面試問題項目介紹屬于B2C平臺-商家對客戶系統(tǒng)的用途,主要是提供B2C的平臺,其中自營商品也有商家入住,類似天貓。系統(tǒng)架構(gòu),采用分布式的系統(tǒng)架構(gòu),其中前臺系統(tǒng)和單點登錄系統(tǒng)采用了集群的方式部署,在后臺管理系統(tǒng)中采用了Maven的多模塊化的管理,其中采用了水平切分的方式,將pojo、dao、service、web分層開發(fā),這樣做的好處就是可以重用性更高。系統(tǒng)內(nèi)部接口調(diào)用采用Httpclient,并且使用Httpclient的連接池技術(shù),接口提供端采用RESTful方式的接口定義;系統(tǒng)之間的通知機制采用MQ的方式,使用RabbitMQ的實現(xiàn),使用了RabbitMQ的消息訂閱模式的消息機制;系統(tǒng)的接口還對JS的跨域做了支持,采用了jsonp的解決方法,在后臺接口中擴展了spirng提供的jackson數(shù)據(jù)轉(zhuǎn)化器實現(xiàn); 部署方面,采用了Nginx+tomcat的模式,其中nginx的作用一方面是做反向代理、負載均衡、另一方面是做圖片等靜態(tài)資源的服務(wù)器。項目介紹應(yīng)該從這個項目的模式、功能、架構(gòu)、解決了什么問題、部署以及投入使用情況來說。2.整個項目的架構(gòu)如何?一般情況這個問題要從兩個方面去回答,從技術(shù)架構(gòu)和功能架構(gòu)去談。技術(shù)架構(gòu):本項目使用主流框架spring+springmvc+mybatis進行開發(fā),采用分布式的系統(tǒng)架構(gòu),前臺系統(tǒng)和單點登錄系統(tǒng)采用了集群的方式部署,后臺管理系統(tǒng)中采用了Maven的多模塊化的管理,其中采用了水平切分的方式,將pojo、dao、service、web分層開發(fā),這樣做的好處就是可以重用性更高。系統(tǒng)內(nèi)部接口調(diào)用采用Httpclient,并且使用Httpclient的連接池技術(shù),接口提供端采用RESTful方式的接口定義;系統(tǒng)之間的通知機制采用MQ的方式,使用RabbitMQ的實現(xiàn),使用了RabbitMQ的消息訂閱模式的消息機制;系統(tǒng)的接口還對JS的跨域做了支持,采用了jsonp的解決方法,在后臺接口中擴展了spirng提供的jackson數(shù)據(jù)轉(zhuǎn)化器實現(xiàn);搜索系統(tǒng)使用了solr實現(xiàn),在保證系統(tǒng)高性能的前提下,盡可能為公司節(jié)約成本,我們使用MySQL數(shù)據(jù)庫進行集群(oracle收費)。在部署方面,采用了Nginx+tomcat的模式,其中nginx的作用一方面是做反向代理、負載均衡、另一方面是做圖片等靜態(tài)資源的服務(wù)器。功能架構(gòu):分布式系統(tǒng)架構(gòu)各個系統(tǒng)說明: 后臺管理系統(tǒng):管理商品、訂單、類目、商品規(guī)格屬性、用戶管理以及內(nèi)容發(fā)布等功能。 前臺系統(tǒng):用戶可以在前臺系統(tǒng)中進行注冊、登錄、瀏覽商品、首頁、下單等操作。 會員系統(tǒng):用戶可以在該系統(tǒng)中查詢已下的訂單、收藏的商品、我的優(yōu)惠券、團購等信息。 訂單系統(tǒng):提供下單、查詢訂單、修改訂單狀態(tài)、定時處理訂單。 搜索系統(tǒng):提供商品的搜索功能。 單點登錄系統(tǒng):為多個系統(tǒng)之間提供用戶登錄憑證以及查詢登錄用戶的信息。談到分布式架構(gòu),我們必須對比傳統(tǒng)架構(gòu)才能彰顯其優(yōu)勢。 最為明顯的一點,在傳統(tǒng)的架構(gòu)中,如果某個功能需要進行維護,那么我們必須停掉整個服務(wù),這對于公司的運營會造成損失。分布式系統(tǒng)在核心功能模塊使用單獨服務(wù)器,維護部分模塊不影響用戶的其他操作。 在海量數(shù)據(jù)處理方面,傳統(tǒng)架構(gòu)顯得比較乏力;分布式系統(tǒng)架構(gòu)采用服務(wù)器集群,使用負載均衡,海量數(shù)據(jù)處理游刃有余! 在性能(檢索)以及維護方面,分布式系統(tǒng)架構(gòu)也有較為明顯的優(yōu)勢。傳統(tǒng)架構(gòu):3.這個項目為用戶提供了哪些服務(wù)?包括哪些功能?u商品管理模塊:其中包括品牌管理,屬性管理商品錄入/上下架管理,商品添加審核,靜態(tài)頁面發(fā)布u訂單模塊:其中包括使用activiti工作流訂單的查詢和訂單的流轉(zhuǎn),定時作廢u商品前臺首頁:其中主要負責(zé)首頁商品列表篩選,首頁上動態(tài)展示篩選條件,點擊每一個篩選條件下面的商品列表要做聯(lián)動u單品頁面:采用freemarker來實現(xiàn)頁面靜態(tài)化,展示商品詳情信息和商品購買,該頁面采用靜態(tài)化以減輕系統(tǒng)壓力,使用了cxf框架發(fā)布服務(wù)u提交訂單頁面:提交用戶的訂單信息,處理并發(fā)問題。u個人中心,包括用戶的登錄,個人信息的管理,收貨地址的管理,用戶所下的訂單的管理u購物車:把購物車的信息存在cookie里面管理4.你承擔(dān)這個項目的哪些核心模塊?在項目中主要負責(zé)相關(guān)系統(tǒng)的開發(fā),主要有: 1)后臺管理系統(tǒng),主要實現(xiàn)商品管理、商品規(guī)格參數(shù)管理、訂單管理、會員管理等、CMS(內(nèi)容管理系統(tǒng))等,并且提供了跨域支持; 2)前臺系統(tǒng),主要是面向用戶訪問,使用Httpclient和后臺系統(tǒng)接口做交互,并且該系統(tǒng)在部署上采用集群的方式; 3)單點登錄系統(tǒng),主要是提供集中用戶登錄憑證的集中解決方案,提供和用戶信息相關(guān)的接口,比如說用戶注冊、查詢等接口。 4)訂單系統(tǒng),主要是提供和訂單相關(guān)的業(yè)務(wù)接口,在訂單系統(tǒng)了做了嚴(yán)格的數(shù)據(jù)校驗以及高并發(fā)寫的支持(這里可以說使用隊列實現(xiàn)),并且使用了Quartz定時任務(wù)實現(xiàn)對訂單的定時掃描,比如說關(guān)閉超時未付款的訂單; 5)搜索系統(tǒng),主要是提供商品的搜索,采用開源企業(yè)級系統(tǒng)Solr實現(xiàn),采用了MQ機制保證了商品數(shù)據(jù)可以及時同步到solr中; 6)會員系統(tǒng),主要是維護用戶的信息,已購買訂單、優(yōu)惠券、系統(tǒng)消息、修改密碼、綁定手機等功能; 7)緩存,主要是用Redis實現(xiàn),并且對Redis做了集群來保證Redis服務(wù)的高可用。8)支付系統(tǒng),主要是負責(zé)訂單的支付、對賬等功能,主要是對接了支付寶的接口;5.這些模塊的實現(xiàn)思路說一下?商品管理模塊品牌管理:主要掌握的核心是品牌的添加l圖片服務(wù)器的搭建,l上傳圖片到圖片服務(wù)器l表單的驗證,離開焦點的驗證,點擊完成時的驗證,后臺服務(wù)器的ajax驗證,表單規(guī)范l防止表單的二次提交l編輯時不需要修改品牌名,區(qū)別readOnly和disabledl刪除時的二次確認注意:自定義屬性必須掌握:html中自定義的屬性可以幫助索引元素圖片服務(wù)器的搭建1.創(chuàng)建一個maven的web工程,在工程中創(chuàng)建一個存放資源的目錄2.把tomcat的web.xml中DefaultServlet的只讀屬性改成false3.編寫上傳到圖片服務(wù)器的代碼由于應(yīng)用服務(wù)器與圖片服務(wù)器出于不同的兩臺機器之中,所以可以提高系統(tǒng)的性能,能起到負載均衡的作用。上傳圖片時使用Jersey客戶端API調(diào)用REST風(fēng)格的Web服務(wù),Jersey1是一個開源的、可以用于生產(chǎn)環(huán)境的JAX-RS(RESTfulWebServices的JavaAPI規(guī)范,JSR-311)實現(xiàn)。通Jersey可以很方便的使用Java來創(chuàng)建一個RESTfulWebServices。. bytefileByte=commFile.getBytes();. /創(chuàng)建客服端,基于webservice. Clientclient=Client.create();. /指定資源路徑. WebResourcewebResource=client.resource(Constants.picPath+fileName);. /使用put的請求方式把資源文件放到資源服務(wù)器上. webResource.put(String.class,fileByte);前臺使用ajax提交表單,需要使用jquery的jquery.form.js插件$(#form).ajaxSubmit(url:url,type:post,dataType:text,data:.,/beforeSubmit:validate,success:function(responseText)varobj=$.parseJSON(responseText);,error:function();4.圖片服務(wù)器中Upload文件夾中隨便建立一個文件,防止空文件夾的情況下發(fā)布后upload消失表單驗證1.提交時做驗證做好約定,每個文本中設(shè)置reg屬性和tip自定義的屬性,reg存放正則表達式,tip中存放不合法時的提示信息,還有品牌名稱重復(fù)的驗證。reg2,tip屬于自定義的屬性,這種定義方式方便使用jquery的屬性選擇器. . *品牌名稱:. . . 2.在表單提交時做驗證使用$(“form”).submit(function()returnfalse);,必填字段和非必填的字段需要區(qū)別對待. $(#form111).submit(function(). varisSubmit=true;. $(this).find(reg2).each(function(). varregStr=$(this).attr(reg2);. /剪掉值中的兩側(cè)的字符串. varvalue=$.trim($(this).val();. vartip=$(this).attr(tip);. /創(chuàng)建正則表達式的對象. varreg=newRegExp(regStr);. if(!reg.test(value). $(this).next(span).html(tip);. isSubmit=false;. /跳出循環(huán),在jquery的each語句之中跳出循環(huán)使用returnfalse;如果在原生js里面可使用break;,return;:代表終止執(zhí)行程序. returnfalse;. . );. $(this).find(reg1).each(function(). varregStr=$(this).attr(reg1);. varvalue=$.trim($(this).val();. vartip=$(this).attr(tip);. varreg=newRegExp(regStr);. if(value!=null&value!=). if(!reg.test(value). $(this).next(span).html(tip);. isSubmit=false;. returnfalse;. . . );. returnisSubmit;. );3.使用離焦事件做友好的提示. $(inputreg2).blur(function(). varregStr=$(this).attr(reg2);. varvalue=$.trim($(this).val();. vartip=$(this).attr(tip);. varreg=newRegExp(regStr);. if(!reg.test(value). $(this).next(span).html(tip);. else. $(this).next(span).html();. . );4.表單的二次提交處理l鎖屏l鎖按鈕商品的查詢商品查詢需要組合條件加分頁查詢l組合條件:品牌,審核狀態(tài),商品名稱,需要動態(tài)sql. . select*. from(selecta.*,rownumrm. from(. select*. fromeb_itemei. . . ei.brand_id=#brandId. . . andei.audit_status=#auditStatus. . . andei.show_status=#showStatus. . . andei.item_namelike%$itemName%. . . orderbyei.item_iddesc)a. !CDATA. whererownum#startNum. . -查詢大于當(dāng)前頁首行號,主要解決oracle的rownum不支持大于號的問題. select*. from(. -查詢小于當(dāng)前最大行號的數(shù)據(jù). selectrownumrm,a.*. from(. -第一個select查詢所有的業(yè)務(wù)數(shù)據(jù). select*fromeb_item. )a. whererownum10l分頁查詢1.查詢結(jié)果集的sql,傳入開始行數(shù)和結(jié)束的行數(shù). select*. from(selecta.*,rownumrm. from(. . 內(nèi)部sql. . )awhererownum#startNum2.使用內(nèi)部sql查詢結(jié)果集的總條數(shù)3.使用分頁工具類,創(chuàng)建page對象更換每次的數(shù)據(jù)總條數(shù)和當(dāng)前頁數(shù)和每頁的條數(shù),查詢出結(jié)果集后把結(jié)果集注入到page對象之中. publicclassPage. inttotalCount=0;. intpageSize=10;. intcurrentPageNo=1;. intstartNum=0;. intendNum=11;. publicPage(inttotalCount,intpageSize,intcurrentPageNo). super();. this.totalCount=totalCount;. this.pageSize=pageSize;. this.currentPageNo=currentPageNo;. . publicintgetStartNum(). return(currentPageNo-1)*pageSize;. . . publicintgetEndNum(). returncurrentPageNo*pageSize+1;. . publicintgetTotalPage(). inttotalPage=totalCount/pageSize;. if(totalPage=0|totalCount%pageSize!=0). totalPage+;. . returntotalPage;. . publicintgetNextPage(). if(currentPageNo=getTotalPage(). returncurrentPageNo;. else. returncurrentPageNo+1;. . . publicintgetPrePage(). if(currentPageNo=1). returncurrentPageNo;. else. returncurrentPageNo-1;. . . Listlist;. . publicListgetList(). returnlist;. . . publicvoidsetList(Listlist). this.list=list;. . . publicintgetTotalCount(). returntotalCount;. . . publicvoidsetTotalCount(inttotalCount). this.totalCount=totalCount;. . . publicintgetPageSize(). returnpageSize;. . . publicvoidsetPageSize(intpageSize). this.pageSize=pageSize;. . . publicintgetCurrentPageNo(). returncurrentPageNo;. . . publicvoidsetCurrentPageNo(intcurrentPageNo). this.currentPageNo=currentPageNo;. . . publicvoidsetStartNum(intstartNum). this.startNum=startNum;. . . publicvoidsetEndNum(intendNum). this.endNum=endNum;. . 4制作前端樣式. varcurrentPageNo=parseInt($(#currentPageNo).val();. vartotalCount=parseInt($(#totalCount).val();. vartotalPage=parseInt($(#totalPage).val();. $(#pagePiece).html(totalCount);. $(#pageTotal).html(currentPageNo+/+totalPage);. if(currentPageNo=totalPage). $(#next).hide();. else. $(#next).show();. . $(#next).click(function(). $(#pageNo).val(parseInt(currentPageNo)+1);. $(#form1).submit();. );. $(#previous).click(function(). $(#pageNo).val(parseInt(currentPageNo)-1);. $(#form1).submit();. );Oracle分頁sql的描述:1.最內(nèi)層的寫查詢當(dāng)前表的全量即可2.對于oracle數(shù)據(jù)庫分頁需要依賴于rownum,但是rownum不支持大于號,但是支持小于號,可以rownum小于結(jié)束行號查詢出來一個結(jié)果集(在全量的外層套一個select,它的結(jié)果集需要把rownum作為結(jié)果返回)3.在第二步的結(jié)果集基礎(chǔ)上再做一次查詢,查詢條件以第二步查詢出來的rownum的值作為條件大于開始行號即可商品發(fā)布Console和portal是分開部署在兩臺服務(wù)器上,發(fā)布需要在console端去控制,但是生成的靜態(tài)化的文件要發(fā)布到portal的工程之中,所以發(fā)布的服務(wù)要在portal上,但是要在console中來調(diào)用,異構(gòu)之間的調(diào)用要使用webservice。1.采用cxf的webservice框架來整合spring2.在web.xml中來配置cxf的核心servlet. . cxfServlet. org.apache.cxf.transport.servlet.CXFServlet. . . cxfServlet. /services/*. 3.創(chuàng)建服務(wù)的接口和接口的實現(xiàn)類,注意接口上加上WebService注解4.創(chuàng)建cxf的核心配置文件cxf-servlet.xml,配置帶有接口的webservice服務(wù)使用標(biāo)簽. . . . . . . . . . . . . . . . . . . 5.修改cxf-servlet.xml的位置,在spring的listener中加載. . . org.springframework.web.context.ContextLoaderListener. . . . contextConfigLocation. . classpath*:beans.xml,classpath*:cxf-servlet.xml. . 6.啟動服務(wù)器發(fā)布webservice的服務(wù),使用wsdl2java生成客戶端的代碼Wsdl2javad.pcn.itcast.ecps.ws.stubhttp:/.wsdl?7.在客戶端調(diào)用。訂單管理模塊1)流程設(shè)計2)訂單整合activiti工作流1.activiti流程和spring整合創(chuàng)建activiti-context.xml文件. . . . . . . . . . . . . . . . . . . 1.畫流程圖2.創(chuàng)建流程服務(wù)類. packagecn.itcast.service.impl;. importjava.io.File;. importorg.activiti.engine.RepositoryService;. importorg.activiti.engine.repository.DeploymentBuilder;. importorg.springframework.beans.factory.annotation.Autowired;. importorg.springframework.stereotype.Service;. importcn.itcast.service.IWorkFlowService;. . /Service. publicclassWorkflowServiceImplimplementsIWorkFlowService. . Autowired. RepositoryServicerepositoryService;. . /*publicRepositoryServicegetRepositoryService(). returnrepositoryService;. . . publicvoidsetRepositoryService(RepositoryServicerepositoryService). this.repositoryService=repositoryService;. */. . publicvoiddeployFlow(). /創(chuàng)建發(fā)布流程配置對象. DeploymentBuilderbuilder=repositoryService.createDeployment();. /指定流程資源路徑. builder.addClasspathResource(activit-orderflow.bpmn).addClasspathResource(activit-orderflow.png);. builder.deploy();. . 1.部署流程2.查詢業(yè)務(wù)任務(wù)3.辦理任務(wù)6.項目中哪些功能模塊涉及了大數(shù)據(jù)量訪問?你是如何解決的?系統(tǒng)前臺是互聯(lián)網(wǎng)上的用戶訪問的,會有大量用戶來訪問。假定有1w個人打開你的網(wǎng)站來訂商品,問你如何解決并發(fā)問題(可擴展到任何高并發(fā)網(wǎng)站要考慮的并發(fā)讀寫問題)問題,1w個人來訪問,商品沒出去前要保證大家都能看到有商品,不可能一個人在看到商品的時候別人就不能看了。到底誰能搶到,那得看這個人的“運氣”(網(wǎng)絡(luò)快慢等)其次考慮的問題,并發(fā),1w個人同時點擊購買,到底誰能成

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論