商務綜合管理平臺-面試問題匯總_第1頁
商務綜合管理平臺-面試問題匯總_第2頁
商務綜合管理平臺-面試問題匯總_第3頁
商務綜合管理平臺-面試問題匯總_第4頁
商務綜合管理平臺-面試問題匯總_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

商務綜合管理平臺項目問題匯總1.請您介紹一下您的項目? 項目背景介紹:商務綜合管理平臺是國際物流行業(yè)一家專門從事進出口玻璃器皿貿(mào)易的公司。業(yè)務遍及歐美。隨著公司不斷發(fā)展壯大,舊的信息系統(tǒng)已無法滿足公司的快速發(fā)展需求,妨礙公司成長,在此背景下,公司領(lǐng)導決定研發(fā)商務綜合管理平臺 功能模塊方面進行的介紹:它分三期完成。一期完成倉儲管理(包括:采購單、倉庫、貨物、條形碼、入庫、出庫、退貨、盤點、庫存、庫存上限報警、統(tǒng)計查詢)和展會管理(包括:展會管理、出單管理),形成貨物統(tǒng)一數(shù)字化管理。二期完成貨運全流程管理,包括購銷合同、出貨表統(tǒng)計、出口報運單、HOME裝箱單、裝箱單、委托書、發(fā)票、財務統(tǒng)計等。三期完成決策分析(包括:成本分析圖、銷售情況統(tǒng)計、重點客戶、經(jīng)營情況同期比對統(tǒng)計、工作績效),為公司經(jīng)營決策提供數(shù)據(jù)支持2.請說說系統(tǒng)架構(gòu)?系統(tǒng)功能模塊方面的結(jié)構(gòu):系統(tǒng)技術(shù)架構(gòu):3.是否參與了數(shù)據(jù)庫設計工作,如果參與又是如何進行數(shù)據(jù)庫設計的?參與了數(shù)據(jù)庫的設計工作。主要采用的PD實現(xiàn)數(shù)據(jù)庫建模,主要用到了物理數(shù)據(jù)模型實現(xiàn)數(shù)據(jù)庫建模,實現(xiàn)數(shù)據(jù)庫建模時采用了三范式與反三范式同時兼顧考慮,目的就是為了更好發(fā)揮出系統(tǒng)運行效率。同時在進行數(shù)據(jù)庫設計時還要考慮到表名,字段名及類型選取上的一些問題。在實現(xiàn)優(yōu)化時考慮到分散計算思想運用,從而極大的提高了系統(tǒng)效率。4.請問項目中使用的Mysql數(shù)據(jù)庫如何實現(xiàn)用戶授權(quán)?MySql中的用戶創(chuàng)建,授權(quán)機制與Oracle中方式是非常類似的。具體創(chuàng)建用戶的命令:首先使用超級管理員root登錄系統(tǒng)其次使用如下創(chuàng)建用戶create user zhangsanlocalhost identified by zhangsan;再次對創(chuàng)建的用戶進行授權(quán)grant all on javaee22.* to zhangsanlocalhost;5.項目中用到了Spring的哪些功能?1.使用了Spring的IOC容器及DI 通過IOC容器實現(xiàn)了對象的統(tǒng)一管理,主要是對web層 的action、業(yè)務層的service、持久層的dao進行管理,并且對struts的action采用多例的方式管理,對service和dao采用單例方式 使用了DI來實現(xiàn)注值工作,將對象與對象之間的依賴關(guān)系通過配置的方式來表達。2.使用Spring的聲明式管理機制實現(xiàn)事務管理 3.使用JdbcTemplate模板機制簡化jdbc操作sql代碼 4.實現(xiàn)了spring與Shiro安全框架整合5.實現(xiàn)spring與Activiti工作流整合開發(fā)6.該項目如何實現(xiàn)數(shù)據(jù)持久化工作的?使用了hibernate3.6 版本項目中主要使用hibernate來實現(xiàn)數(shù)據(jù)的持久化工作的,對于數(shù)據(jù)庫的查詢主要使用了HQL和SQL。其中對于復雜的統(tǒng)計查詢采用了SQL查詢方式,從而提高查詢效率。系統(tǒng)采用了DAO模式,實現(xiàn)了一個通用的DAO操作類的封裝。對于復雜的統(tǒng)計查詢,因為涉及到連接查詢和子查詢及分組查統(tǒng)計查詢混合在一起,造成SQL語句相當復雜,此時我采用了jdbcTemplate來執(zhí)行原生的sql語句,從而使系統(tǒng)的DAO實現(xiàn)了更加完美。7.使用Hibernate時,對于PO的定義規(guī)范是什么?8.項目中hibernate的主鍵是如何生成的?主要用到了Hibernate的UUID和assigned來實現(xiàn)主鍵的生成。其中主鍵的生成策略還包括:native:采用本地策略生成Increment:自動實現(xiàn)表中最大id的基礎(chǔ)上加1方式生成Identity:自動增長方式,適用于mysql等有自增效果的數(shù)據(jù)庫sequence:oracle數(shù)據(jù)庫特有的,采用序列方式生成9.項目中如何使用Struts2框架的?首先在項目中抽取了一個父類BaseAction,而自己編寫的業(yè)務Action都是繼承自BaseAction的。實現(xiàn)類采用這種方式,很好的做到了業(yè)務控制器與Struts2API的解藕,并且可以在BaseAction中提供出一些通用方法,如操作值棧的通用方法。10.項目開發(fā)的視圖View是如何實現(xiàn)的?項目主要采用了JSP作為視圖,也采用了導出Excel報表形式來響應客戶端請求。在JSP頁面中主要使用了JSTL+EL方式來生成結(jié)果視圖。這樣做主要是套用的FreeMarker的模板技術(shù)來實現(xiàn)頁面的生成,這樣就可以省去很多重復性工作,并且保證頁面風格統(tǒng)一。11.項目的頁面是如何實現(xiàn)布局的。總體布局采用的是FRAMESET方式進行的。其中對于每個頁面又采用了DIV+TABLE+CSS方式進行布局。因為該項目是一個相對傳統(tǒng)的項目,所以在后臺管理工作還采用了FRAMESET方式進行布局,而目前相對流行的DIV+CSS方式主要用于電商項目和公司門戶中。12.請說說項目中為什么采用EL,而不是OGNL?(可刪除) 因為OGNL都要結(jié)合Struts2標簽一起使用,而瀏覽器對于Struts2標簽是不能直接執(zhí)行的,都要轉(zhuǎn)化為HTML標簽,所以影響了執(zhí)行效率,所以在本次項目中主要采用的是JSTL+HTML來實現(xiàn)顯示。13.頁面中具有同名框的一組值,框架如何實現(xiàn)封裝的?1.String 接收 struts2默認使用逗號+空格進行分隔 : “aaaaaaaaaaa, bbbbbbbbbbbbbb, cccccc”2.Integer,Float,Double,Date類型 id=1, id=2 ,id=3 struts2默認處理方式中,只保留最后一個參數(shù) 程序員可以定義數(shù)組來接收參數(shù) private Integer id;14.項目中是如何權(quán)限系統(tǒng)的?該項目采用了BRAC認證模型實現(xiàn)了權(quán)限系統(tǒng)。具體的表結(jié)構(gòu)關(guān)系如下:項目中除了實現(xiàn)粗粒度權(quán)限功能外,還實現(xiàn)了細粒度權(quán)限控制。其中細粒度權(quán)限控制主要表現(xiàn)為對系統(tǒng)的數(shù)據(jù)進一步控制。細粒度權(quán)限控制主要是對于表結(jié)構(gòu)進行了調(diào)整,使得表結(jié)構(gòu)支持細粒度權(quán)限控制。15.項目中如何使用Shiro安全框架的?首先介紹下Shiro它是一個安全框架,用于解決系統(tǒng)的認證和授權(quán)問題,同時提供了會話管理,數(shù)據(jù)加密機制。Shiro與應用程序如何交互的項目中使用Shiro的過程如下:還使用Shiro的緩存機制,具體緩存的實現(xiàn)使用了Ehcache。16.項目中用了ajax+json+zTree實現(xiàn)權(quán)限樹,如何做到的?首先項目采用了jquery來實現(xiàn)相關(guān)的js操作,其中ajax也使用的jquery提供的ajax方法來實現(xiàn)異步請求。在服務器端的json封裝采用手動方式進行,并沒有使用json-lib或一些類似的工具來進行,因為所封裝的結(jié)果要求進行對象的比較。當服務器返回結(jié)果后就要將json轉(zhuǎn)化為zTree樹上的結(jié)點,所以調(diào)用zTree樹的init()方法就可以按要求構(gòu)造出樹。zTree樹構(gòu)造過程:zTreeObj = $.fn.zTree.init($(#jkTree), setting, zNodes); 第一個參數(shù):樹展示的位置 第二個參數(shù):一些初始配置 第三個參數(shù):服務器返回的json對象zTreeObj.expandAll(true);/展開所有樹節(jié)點17.系統(tǒng)的異常是如何處理的?為了使得系統(tǒng)異常得到更好的處理,主要使用了Struts2的異常處理框架來實現(xiàn)異常的處理。首先可以自定義異常處理類。其次編寫異常處理的頁面,當出現(xiàn)異常就會跳到異常處理頁面。再次在Struts2配置文件中,進行相應的異常框架配置。18.介紹一下你在項目中從事的工作?我在項目中參與項目的二期功能模塊的開發(fā),其中主要負責購銷合同模塊的開發(fā)。下面對購銷合同進行介紹,公司銷售和海外客戶簽訂訂單(合同),客戶訂單中的貨物,公司就聯(lián)系這些(多個)廠家來生產(chǎn),和生產(chǎn)廠家簽訂合同,這個合同就叫“購銷合同”。購銷合同的內(nèi)容主要由三部分組成,購銷合同的主信息,和多個貨物的信息,和多個附件的信息(包裝紙的信息)。(附件實際就是貨物)購銷合同打印出后,將每張紙交給對應生產(chǎn)廠家的銷售代表(公司)購銷合同打印要求,可以每頁只打印一款貨物,也可以打印兩款貨物。用戶可以自己選擇。如果每頁打印兩款貨物,必須是同一個生產(chǎn)廠家,如果不是同一個生產(chǎn)廠家,必須另起一頁。為了在購銷合同查詢顯示時速度更快,我在進行表結(jié)構(gòu)設計優(yōu)化時,采用了分散計算思想,表設計中加入了購銷合同總金額,貨物總數(shù),附件總數(shù)三個字段,這樣就可以在購銷合同查詢時,上面所涉及到三個字段的值直接從表中查詢出來,而不是集中進行計算,把這樣集中計算的工作,分散到每次貨物和附件操作過程中,這樣就避免了集中計算,從而極大的提高系統(tǒng)運行效率。19.項目中是如何實現(xiàn)報表的?本項目主要采用了Apache的POI實現(xiàn)Excel報表的導出,導出的報表主要有:購銷合同、出口報運單、HOME裝箱單、裝箱單、委托單、發(fā)票單、財務報運單。其中最為復雜的是購銷合同的導出。下面是針對購銷合同打印時的相關(guān)問題?1) 是否可以使用模板?否。由于用戶的習慣,造成不能直接使用模板。2) 數(shù)據(jù)和打印代碼分離?封裝每頁數(shù)據(jù)到map中,封裝所有頁到list中/填寫每頁的內(nèi)容,之后在循環(huán)每頁讀取打印Map pageMap = null;List pageList = new ArrayList();/打印頁3) 圖片(logo圖片和貨物圖片)如何插入到excel中?工具類中直接封裝,直接調(diào)用工具類方法poiUtil.setPicture(wb, patriarch, path+make/xlsprint/logo.jpg, curRow, 2, curRow+4, 2);4) 如何實現(xiàn)畫線?poiUtil.setLine(wb, patriarch, curRow, 2, curRow, 8);/draw line5) 合并單元格畫線?合并單元格,只實現(xiàn)第一個單元格的畫線,其他的單元格必須手工補。通過直接創(chuàng)建這個單元格,設置畫線的樣式即可6) 加人民幣前綴?public short rmb2Format(HSSFWorkbook wb) HSSFDataFormat format = wb.createDataFormat();return format.getFormat(¥#,#,#.00); / 設置格式curStyle.setDataFormat(rmb2Format);,代表千位符#,代表數(shù)字,如果這個值為0,它又在最前面,它的結(jié)果空0,代表,當這位有值時,直接顯示值,如果最后一位沒有值時顯示07) 如何寫公式?普通單元格內(nèi)容,直接寫;nCell.setCellType(HSSFCell.CELL_TYPE_FORMULA);nCell.setCellFormula(F+String.valueOf(curRow)+*H+String.valueOf(curRow);8) 如何多行文本自動換行?curStyle.setWrapText(true); / 換行9) 如何實現(xiàn)單元格自適應高度?float height = poiUtil.getCellAutoHeight(printMap.get(Crequest), 12f);/自動高度nRow.setHeightInPoints(height);10) 如何插入一個分頁符?if(p0)sheet.setRowBreak(curRow+);/在第startRow行設置分頁符11) 審單人增加名稱后,驗貨員不會向后推動?utilFuns.fixSpaceStr(contract.getCheckBy(),26)12) 日期如何轉(zhuǎn)為中文格式?UtilFuns.formatDateTimeCN(UtilFuns.dateTimeFormat(contract.getSigningDate();13) 打印一款貨物或者打印兩款貨物通過printStyle來判斷14) 同一個生產(chǎn)廠家的打印在一頁上,不同則另起一頁在判斷廠家前,查詢的多個貨物信息時,必須先排序,按生產(chǎn)廠家名稱。20.如何實現(xiàn)海量數(shù)據(jù)導出?性能如何? SXSSFWorkbook可以支持百萬級別數(shù)據(jù)的POI 實現(xiàn)原理: 在初始化SXSSFWorkbook這個對象時,可以指定在內(nèi)存中所產(chǎn)生后的POI導出相關(guān)對象的個數(shù)(默認為100個),一旦內(nèi)存中對象的個數(shù)達到這個指定值時,就將內(nèi)存中的這些對象的內(nèi)容寫入磁盤中(xml文件格式),就可以將這些對象從內(nèi)存中銷毀掉,以后只要達到這個值時,都會這樣處理。在最終excel導出完成時,也會將寫入在xml文件中的內(nèi)容一起導出。為了使得導出性能的提高,可以采用如下方法:l 加大jdk配置的內(nèi)存,l eclipse配置的內(nèi)存l Tomcat配置21.項目中的CodeMachine作用?它的底層是如何實現(xiàn)的?本次項目的裝箱單&委托單&發(fā)票&財務報運單模塊都是采用這種方式來提高開發(fā)效率的。CodeMachine可以生成這些模塊的po類及映射文件, service,action,jsp頁面,及所有的配置文件。這樣可以實現(xiàn)開發(fā)效率翻倍。那么CodeMachine的實現(xiàn)原理是什么?生成代碼的主要原理,就是只是你指定數(shù)據(jù)庫的表,它就可以根據(jù)反射得到數(shù)據(jù)庫的元數(shù)據(jù),也可以得到ResultSetMetaData,再由它得到相關(guān)的列的信息,再通過FreeMarker的模板機制,將讀取到的列信息轉(zhuǎn)化為類的屬性信息,這樣就可以生成相應的類,并且可以你制作的FreeMarker模板來生成JSP頁面,所以CodeMachine的底層就是反射、元數(shù)據(jù)、FreeMarker模板機制。22.系統(tǒng)是如何實現(xiàn)細粒度控制的? 1.自已添加的記錄將來自己可以操作。 2.部門經(jīng)理可以查看當前部門員工所添加的記錄 3.部門經(jīng)理可以查看當前部門及下屬部門所有員工添加的記錄 4.跨部門跨人員的權(quán)限解決方案:一個部門有多個用戶,同樣一個用戶也可以從屬于多個部門 5.查看公司所有數(shù)據(jù)23.系統(tǒng)是如何實現(xiàn)圖表報表的?項目使用了amChart+Flash來實現(xiàn)圖表制作,早期使用的是XML做為數(shù)據(jù)來源,新版本中進行調(diào)整,使用JSON數(shù)據(jù)作為數(shù)據(jù)來源。從數(shù)據(jù)來源可以看出,將來要使用amChart制作圖表時,主要就是把data.xml中的數(shù)據(jù)替換為從數(shù)據(jù)庫中查詢出來的數(shù)據(jù)就可以了,就會涉及到操作XML文檔,常用的XML操作方式有哪些?(JDOM,DOM4J,SAX),用得最多的是DOM4J實現(xiàn)XML文檔操作。但是本次項目不使用這些技術(shù),我只是把XML文檔也當成是一個普通文件,所以就可以直接使用流的方式,將一個組織好的符合XML結(jié)構(gòu)的字符串直接寫入到XML文件中,這樣就可以不用再去頻繁操作XML文件的結(jié)點了。統(tǒng)計查詢時因為會出現(xiàn)非常復雜的報表,所以更適合使用SQ

溫馨提示

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

評論

0/150

提交評論