日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > windows >内容正文

windows

进销存系统的一些事儿

發(fā)布時(shí)間:2024/3/24 windows 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 进销存系统的一些事儿 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
  • List與Set的區(qū)別:
  • List有序【有索引】、Set無序【沒有索引、TreeSet底層使用二叉樹結(jié)構(gòu)實(shí)現(xiàn),所以有序】
  • List允許數(shù)據(jù)重復(fù)、Set不允許重復(fù)
  • 實(shí)際開發(fā)中可以使用Set集合來去除重復(fù)數(shù)據(jù)
  • 列舉你熟悉的幾種數(shù)據(jù)結(jié)構(gòu)?
  • 數(shù)組結(jié)構(gòu)
  • 矩陣
  • 二叉樹
  • 鍵值對(duì)
  • 鏈表結(jié)構(gòu)【單向鏈表、雙向鏈表】
  • HashMap與HashTable的區(qū)別
  • HashMap允許null鍵和nul值,HashTable不允許null鍵也不允許null值
  • HashMap線程不安全,HashTable線程安全
  • HashMap與HashTable都是無序的,但是TreeMap是有序的
  • 項(xiàng)目中通常情況下要使用properties,Properties是HashTable的子類,但是要求鍵和值都必須是字符串【一般用來配置一些項(xiàng)目中的初始化數(shù)據(jù),例如jdbc、連接池等】
  • Java訪問數(shù)據(jù)庫(kù)有哪些技術(shù)?
  • JDBC
  • 自己封裝JDBC的工具類
  • Commons-Dbutils+dbcp【QueryRunner】
  • SpringJDBC【JdbcTemplate】
  • JPA【配置文件、domain實(shí)體類+注解、EntityManager】
  • SpringDataJpa【是Spring對(duì)JPA的封裝,用起來更簡(jiǎn)單快捷,很可能還要使用文浩對(duì)SpringDataJpa的擴(kuò)展】
  • Hibernate框架
  • Mybatis
  • 談一談你對(duì)Spring框架的感受?
  • Spring代表春天的意思,其實(shí)就是程序員的春天
  • Spring有兩大核心特點(diǎn):控制反轉(zhuǎn)(創(chuàng)建對(duì)象的權(quán)力交給Spring)/依賴注入(創(chuàng)建對(duì)象之后,對(duì)象的某些屬性需要初始化,使用set方法或者構(gòu)造方法對(duì)這些屬性進(jìn)行初始化)、AOP(面向切面編程,在方法執(zhí)行前后添加其他業(yè)務(wù)邏輯、底層使用動(dòng)態(tài)代理技術(shù)實(shí)現(xiàn),可以用來做例如:權(quán)限驗(yàn)證、事務(wù)管理、日志記錄等功能)
  • Spring是一個(gè)容器型框架,內(nèi)部有很多子框架,分別實(shí)現(xiàn)了很多不同功能,而且相互之間可以無縫集成【spring-jdbc,springMVC,SpringDataJPA】
  • Spring可以和目前市面上其他幾乎所有框架集成到一起,通常情況下使用FactoryBean方式進(jìn)行配置
  • 我在項(xiàng)目中使用Spring,哪里需要對(duì)象的時(shí)候,直接使用@Autowired自動(dòng)注入就可以了,非常方便。
  • 你剛才提到了SpringMVC,怎么用?底層有什么原理?
  • SpringMVC是對(duì)Servlet/JSP技術(shù)的封裝,原來的Servlet用來做項(xiàng)目的時(shí)候使用不是太方便【一個(gè)Servlet只能處理一種請(qǐng)求】
  • 使用SpringMVC首先要配置中央控制器【DispatcherServlet】(還要加上初始化參數(shù)指定SpringMVC的配置文件路徑),然后SpringMVC的配置文件中添加配置,通過請(qǐng)求訪問路徑進(jìn)行匹配(/xxx/yyy:/xxx匹配Controller類,/yyy匹配類中的方法)
  • /xxx/yyy: 請(qǐng)求首先來到中央控制器中,通過HandlerMapping(處理器映射器)找到相應(yīng)的處理器(Controller類),然后再使用處理器適配器(HandlerAdapter)處理請(qǐng)求參數(shù)的封裝以及類型自動(dòng)轉(zhuǎn)化,通過反射方式執(zhí)行該控制器類中的該方法,方法執(zhí)行完畢后一般情況下要求返回一個(gè)字符串,再經(jīng)過視圖解析器(ViewResolver)進(jìn)行解析,最后再默認(rèn)利用請(qǐng)求轉(zhuǎn)發(fā)方式跳轉(zhuǎn)頁(yè)面。
  • 剛才提到了Spring的AOP,請(qǐng)你說一說Spring的AOP?
  • 面向切面編程(Aspect Oriented Programming)
  • AOP本身是由AOP聯(lián)盟推出的一套接口規(guī)范,Spring的AOP實(shí)現(xiàn)了AOP聯(lián)盟規(guī)范中的一部分
  • 基于動(dòng)態(tài)代理技術(shù)實(shí)現(xiàn):原本有一個(gè)接口一個(gè)實(shí)現(xiàn)類,使用JDK動(dòng)態(tài)代理或者CGLIB動(dòng)態(tài)代理技術(shù)生成一個(gè)代理類,代理類和被代理類型要求必須實(shí)現(xiàn)相同接口,代理類中持有一個(gè)被代理類的對(duì)象作為屬性,在重寫接口的方法中調(diào)用被代理對(duì)象的相應(yīng)方法,并且在調(diào)用之前或者之后添加其他業(yè)務(wù)邏輯。最后將這個(gè)代理對(duì)象返回。
  • 好處:降低耦合度(方法調(diào)用者與被代理對(duì)象之間的耦合度)
  • 可以用來實(shí)現(xiàn)事務(wù)管理、日志管理、權(quán)限驗(yàn)證等等功能,感覺在調(diào)用方法的時(shí)候不知不覺間就插入了其他業(yè)務(wù)邏輯。
  • Spring的AOP支持配置文件方式和注解方式實(shí)現(xiàn)AOP
  • Spring中對(duì)事務(wù)管理業(yè)務(wù)增強(qiáng)類還寫了很多實(shí)現(xiàn)類,只需要把它配置成bean就可以直接使用了。
  • 請(qǐng)你解釋一下Spring的控制反轉(zhuǎn)(IOC)和依賴注入(DI)?
  • 控制反轉(zhuǎn)(IOC):將創(chuàng)建對(duì)象的權(quán)力交給Spring來管理,可以通過配置bean標(biāo)簽或者掃描包(@Controller、@Service、@Repository、@Component)的方式,默認(rèn)使用類名稱(首字母小寫)作為鍵,創(chuàng)建的對(duì)象作為值存入Spring容器中,而且默認(rèn)是單例模式,也可以自己指定一個(gè)名稱作為鍵如果是bean標(biāo)簽,可以使用id或者name屬性指定如果是注解方式,可以在注解后面加上字符串指定
  • 依賴注入(DI):創(chuàng)建對(duì)象之后要給對(duì)象的某些屬性進(jìn)行賦值,利用set方法或者構(gòu)造方法給對(duì)象屬性賦值。因?yàn)樵陧?xiàng)目中經(jīng)常要在一個(gè)對(duì)象中持有另一個(gè)對(duì)象作為屬性【這種關(guān)系稱為關(guān)聯(lián)關(guān)系】,但是關(guān)聯(lián)關(guān)系耦合度太高,為了降低耦合度,利用set方法或者構(gòu)造方法的參數(shù)【從Spring容器中獲取,獲取到的對(duì)象還有可能是代理對(duì)象】傳入,將關(guān)聯(lián)關(guān)系變?yōu)橐蕾囮P(guān)系。
  • 請(qǐng)你說一下Spring的bean標(biāo)簽有哪些配置方式?
  • 最簡(jiǎn)單的bean標(biāo)簽
  • 實(shí)例工廠:配置一個(gè)工廠bean,再配置一個(gè)目標(biāo)bean,使用factory-bean屬性引用工廠bean的id,使用factory-method指定工廠bean對(duì)象中的方法名稱,這個(gè)方法必須返回一個(gè)目標(biāo)bean對(duì)象。
  • 靜態(tài)工廠:配置工廠bean,但是要加上factory-method指定工廠bean對(duì)象中的方法名稱,這個(gè)方法必須返回一個(gè)目標(biāo)bean對(duì)象。
  • FactoryBean:其實(shí)就是實(shí)例工廠方式,專門用來與其他框架集成【變相的實(shí)例工廠,但是工廠方法名稱是固定的,必須叫g(shù)etObject】
  • 你的進(jìn)銷存系統(tǒng)中使用的哪些框架?說一說SpringDataJpa
  • SpringDataJpa是Spring對(duì)JPA的實(shí)現(xiàn)封裝,用起來更方便,現(xiàn)在目前市面上還是有20%左右的公司在使用SpringDataJpa
  • 核心接口是Respotory、JpaRepository、JpaSpecificationExecutor
  • SpringDataJpa好處是DAO層只需要寫接口繼承JpaRepository、JpaSpecificationExecutor接口,不需要我們自己寫實(shí)現(xiàn)類
  • 還不夠方便,往往我們都要使用文浩的擴(kuò)展【只是封裝了獲取Specification對(duì)象的方法】,然后自己再擴(kuò)展。
  • 項(xiàng)目前端用的什么框架?Easyui與后端怎么交互數(shù)據(jù)?
  • 前端使用的是easyui框架:easyui框架非常適合用來做管理系統(tǒng)的后臺(tái)系統(tǒng),方便實(shí)用,基于js、jQuery、css實(shí)現(xiàn),方便理解和學(xué)習(xí),easyui內(nèi)部集成了很多插件,包括我們使用的tree、datagrid、tabs、form、validatebox、combobox、window、dialog、messager。。。。。這些插件都有一個(gè)共同點(diǎn),創(chuàng)建的時(shí)候通常情況下都需要傳入一個(gè)json對(duì)象作為參數(shù)。
  • 發(fā)送數(shù)據(jù)到后臺(tái):通常情況下都是利用jQuery的ajax,傳遞json格式請(qǐng)求參數(shù)
  • 后臺(tái)方法中往往也是返回JSON格式的數(shù)據(jù):@ResponseBody(SpringMVC就不再使用視圖解析器進(jìn)行頁(yè)面跳轉(zhuǎn),而是利用jackson工具將方法返回值轉(zhuǎn)化為JSON格式的字符串進(jìn)行響應(yīng))
  • SpringMVC如何接收請(qǐng)求參數(shù)?
  • 傳統(tǒng)方式:req.getParameter()
  • 直接在方法形參列表中寫形參變量:形參變量名稱與請(qǐng)求參數(shù)名稱一致
  • 直接在方法形參列表中寫形參變量+@ReqquestParam:形參變量名稱與請(qǐng)求參數(shù)名稱不一致
  • 直接使用domain實(shí)體類對(duì)象接收:實(shí)體類對(duì)象的屬性名稱與請(qǐng)求參數(shù)名稱一致,而且屬性必須有set方法、domain實(shí)體類必須有無參構(gòu)造
  • 使用RESTFUL風(fēng)格:@PathVariable(“aa”) aa字符串仍然要與方法映射中的變量名稱一致
  • 請(qǐng)求參數(shù)傳遞過來都是字符串類型,SpringMVC會(huì)自動(dòng)進(jìn)行類型轉(zhuǎn)化,若轉(zhuǎn)化失敗會(huì)報(bào)400錯(cuò)誤
  • SpringMVC如何傳遞數(shù)據(jù)給頁(yè)面前端?
  • 傳統(tǒng)方式:三大作用域.setAttribute,在轉(zhuǎn)發(fā)到頁(yè)面,在頁(yè)面中就可以取出數(shù)據(jù),但是這種只支持同步請(qǐng)求
  • Model
  • ModelMap
  • ModelAndView:這三個(gè)其實(shí)就是將數(shù)據(jù)保存到請(qǐng)求作用域中,轉(zhuǎn)發(fā)之后能獲取數(shù)據(jù),也只支持同步請(qǐng)求
  • @ResponseBody注解將返回的值【對(duì)象、數(shù)組、集合、Map集合】自動(dòng)轉(zhuǎn)化為JSON格式字符串,再利用響應(yīng)對(duì)象中的輸出流,這種方式是今后用得最多的,支持異步請(qǐng)求
  • 有沒有自己研發(fā)過類似SpringMVC的小框架?說一下思路
  • 服務(wù)器啟動(dòng)時(shí)候【listener配置】
  • 加載配置文件、掃描包(讀取bean的配置信息)
  • 獲取到完全限定名
  • 利用反射創(chuàng)建對(duì)象
  • 以注解值為鍵,以創(chuàng)建的對(duì)象為值,保存到Map集合中
  • 將這個(gè)Map集合保存到ServletContext作用域中
  • 請(qǐng)求訪問的時(shí)候【所有請(qǐng)求都來到一個(gè)中央控制器中,再進(jìn)行統(tǒng)一分發(fā)】
  • 解析到請(qǐng)求地址中的uri
  • 解析Map集合中所有保存的對(duì)象的注解,來進(jìn)行匹配,如果沒匹配到就拋出異常
  • 再解析類中的所有方法的注解,再與uri進(jìn)行匹配,如果又沒匹配到就拋出異常
  • 找到相應(yīng)的對(duì)象,以及方法,再通過反射去執(zhí)行該對(duì)象的該方法,并且將請(qǐng)求和響應(yīng)對(duì)象傳過去。
  • 說幾個(gè)項(xiàng)目開發(fā)中你遇到的印象比較深刻的問題,你是怎么解決的?
  • 列舉具有代表性的問題,但是千萬不要說技術(shù)性問題
  • N to n錯(cuò)誤:斷開關(guān)聯(lián)關(guān)系,設(shè)置為null
  • Datagrid上展示數(shù)據(jù),數(shù)據(jù)中某個(gè)屬性是懶加載對(duì)象的時(shí)候,會(huì)出現(xiàn)no session:web.xml中添加一個(gè)過濾器
  • No Serializer:懶加載對(duì)象原理(JPA會(huì)自動(dòng)創(chuàng)建一個(gè)類繼承懶加載對(duì)象的類,并且重寫屬性的get方法,目的是為了在get方法被調(diào)用的時(shí)候發(fā)送SQL去加載數(shù)據(jù),會(huì)額外添加幾個(gè)屬性)
  • @JsonIgnoreProperties(value={"hibernateLazyInitializer","handler","fieldHandler"})
  • Easyui中經(jīng)常容易把id選擇器寫錯(cuò):在瀏覽器中按F12查看js報(bào)錯(cuò)信息
  • 請(qǐng)求參數(shù)傳遞錯(cuò)誤:也可以按F12,去查看請(qǐng)求的參數(shù)以及響應(yīng)消息
  • SpringDataJpa如何自定義擴(kuò)展?說一下思路
  • 經(jīng)過查看SpringDataJpa接口的繼承體系,發(fā)現(xiàn)SpringDataJpa默認(rèn)使用SimpleJpaRepository來創(chuàng)建子類對(duì)象,并且生成代理對(duì)象,最后返回出來
  • 我們可以給我們所有的業(yè)務(wù)Repository抽取一個(gè)公共父接口(BaseRepository+@NoRepositoryBean注解),擴(kuò)展的方法寫在這個(gè)父接口中
  • 然后寫一個(gè)父接口的實(shí)現(xiàn)類,繼承SimpleJpaRepository,并且實(shí)現(xiàn)自定義的父接口中擴(kuò)展的方法
  • 然后將所有業(yè)務(wù)Repository繼承我們自定義的父接口(BaseRepository)
  • 因?yàn)镾pringDataJpa默認(rèn)使用SimpleJpaRepository來創(chuàng)建子類對(duì)象,所以我們要讓SpringDataJpa默認(rèn)使用我們自定義的BaseRepository父接口的實(shí)現(xiàn)類來創(chuàng)建子類,就需要修改配置文件factory-class="cn.itsource.ibs.repository.BaseRepositoryFactoryBean
  • 項(xiàng)目中做了權(quán)限管理嗎?說一下權(quán)限管理的設(shè)計(jì)?
  • 任何系統(tǒng)中都需要權(quán)限管理
  • 權(quán)限管理一般情況下需要6張表
  • 用戶表
  • 角色
  • 用戶角色中間表
  • 權(quán)限
  • 角色權(quán)限中間表
  • 菜單表
  • 關(guān)系:
  • 用戶與角色之間:多對(duì)多
  • 角色與權(quán)限之間:多對(duì)多
  • 權(quán)限與菜單之間:多對(duì)一
  • 通過角色管理功能:可以去控制角色關(guān)聯(lián)哪些用戶、也可以控制角色擁有哪些權(quán)限
  • 進(jìn)銷存系統(tǒng)中的采購(gòu)是怎么回事?
  • 采購(gòu)模塊是進(jìn)銷存系統(tǒng)中必要的核心功能模塊,因?yàn)殇N售的商品不是自主生產(chǎn)的,是作為一個(gè)中間商賺差價(jià)
  • 采購(gòu)分為采購(gòu)申請(qǐng)和采購(gòu)入庫(kù)兩部分
  • 采購(gòu)是公司內(nèi)部某部門某員工發(fā)起申請(qǐng),由主管或者經(jīng)理審核之后實(shí)施
  • 采購(gòu)員線下采購(gòu)
  • 采購(gòu)申請(qǐng)完畢
  • 供應(yīng)商送貨上門
  • 發(fā)起一個(gè)入庫(kù)單、入庫(kù)單明細(xì)
  • 每一個(gè)入庫(kù)單明細(xì)后面都要有一個(gè)“確認(rèn)”按鈕
  • 確認(rèn)之后,商品都放入倉(cāng)庫(kù)中,修改入庫(kù)單的狀態(tài)為“已審”、審核人、審核時(shí)間
  • 根據(jù)商品和倉(cāng)庫(kù)確定當(dāng)前倉(cāng)庫(kù)中是否已有這個(gè)商品
  • 沒有:直接新增一條數(shù)據(jù)到庫(kù)存表中
  • 有:數(shù)量累加、金額累加、入庫(kù)日期以當(dāng)前時(shí)間為準(zhǔn)、單價(jià)使用加權(quán)平均法計(jì)算
  • 談一下進(jìn)銷存系統(tǒng)中的導(dǎo)入導(dǎo)出功能?
  • 談一下報(bào)表功能
  • 面試技巧
  • 面試的時(shí)候切忌說話不流暢、結(jié)巴
  • 將面試官的問題引導(dǎo)到自己熟悉的方向去
  • 到面試場(chǎng)合中切忌耍手機(jī)、注意坐姿
  • 提升自己溝通表達(dá)能力
  • 回答問題時(shí)注意邏輯、條理清晰
  • 總結(jié)

    以上是生活随笔為你收集整理的进销存系统的一些事儿的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。