更新時(shí)間:2020-03-26 12:26:44 來源:動(dòng)力節(jié)點(diǎn) 瀏覽3018次
1.談?wù)勀鉳vc的理解?
MVC是Model—View—Controler的簡(jiǎn)稱。即模型—視圖—控制器。MVC是一種設(shè)計(jì)模式,它強(qiáng)制性的把應(yīng)用程序的輸入、處理和輸出分開。
MVC中的模型、視圖、控制器它們分別擔(dān)負(fù)著不同的任務(wù)。
視圖:視圖是用戶看到并與之交互的界面。視圖向用戶顯示相關(guān)的數(shù)據(jù),并接受用戶的輸入。視圖不進(jìn)行任何業(yè)務(wù)邏輯處理。
模型:模型表示業(yè)務(wù)數(shù)據(jù)和業(yè)務(wù)處理。相當(dāng)于JavaBean。一個(gè)模型能為多個(gè)視圖提供數(shù)據(jù)。這提高了應(yīng)用程序的重用性
控制器:當(dāng)用戶單擊Web頁面中的提交按鈕時(shí),控制器接受請(qǐng)求并調(diào)用相應(yīng)的模型去處理請(qǐng)求。
然后根據(jù)處理的結(jié)果調(diào)用相應(yīng)的視圖來顯示處理的結(jié)果。
MVC的處理過程:首先控制器接受用戶的請(qǐng)求,調(diào)用相應(yīng)的模型來進(jìn)行業(yè)務(wù)處理,并返回?cái)?shù)據(jù)給控制器。控制器調(diào)用相應(yīng)的視圖來顯示處理的結(jié)果。并通過視圖呈現(xiàn)給用戶。
適配器設(shè)計(jì)模式模板設(shè)計(jì)模式
2.什么是Spring?
Spring是一個(gè)開源的JavaEE開發(fā)框架。
Spring框架的核心功能可以應(yīng)用在任何Java應(yīng)用程序中,但對(duì)JavaEE平臺(tái)上的Web應(yīng)用程序有更好的擴(kuò)展性。
Spring框架的目標(biāo)是使得JavaEE應(yīng)用程序的開發(fā)更加簡(jiǎn)捷,通過使用POJO為基礎(chǔ)的編程模型促進(jìn)良好的編程風(fēng)格。
3.SpringIoC容器是什么?
SpringIOC負(fù)責(zé)創(chuàng)建對(duì)象、管理對(duì)象(通過依賴注入)、整合對(duì)象、配置對(duì)象以及管理這些對(duì)象的生命周期。
4.有哪些不同類型的IOC(依賴注入)?
構(gòu)造器依賴注入:構(gòu)造器依賴注入在容器觸發(fā)構(gòu)造器的時(shí)候完成,該構(gòu)造器有一系列的參數(shù),每個(gè)參數(shù)代表注入的對(duì)象。
Setter方法依賴注入:首先容器會(huì)觸發(fā)一個(gè)無參構(gòu)造函數(shù)或無參靜態(tài)工廠方法實(shí)例化對(duì)象,之后容器調(diào)用bean中的setter方法完成Setter方法依賴注入。
5.#{}和${}的區(qū)別是什么?
答:${}是Properties文件中的變量占位符,它可以用于標(biāo)簽屬性值和sql內(nèi)部,屬于靜態(tài)文本替換,
比如${driver}會(huì)被靜態(tài)替換為com.mysql.jdbc.Driver。#{}是sql的參數(shù)占位符,Mybatis會(huì)將sql中的#{}替換為?號(hào),
在sql執(zhí)行前會(huì)使用PreparedStatement的參數(shù)設(shè)置方法,按序給sql的?號(hào)占位符設(shè)置參數(shù)值,比如ps.setInt(0,parameterValue),
#{item.name}的取值方式為使用反射從參數(shù)對(duì)象中獲取item對(duì)象的name屬性值,相當(dāng)于param.getItem().getName()。
6.Xml映射文件中,除了常見的select|insert|updae|delete標(biāo)簽之外,還有哪些標(biāo)簽?
答:還有很多其他的標(biāo)簽,<resultMap>、<parameterMap>、<sql>、<include>、<selectKey>,
加上動(dòng)態(tài)sql的9個(gè)標(biāo)簽,trim|where|set|foreach|if|choose|when|otherwise|bind等,其中<sql>為sql片段標(biāo)簽,
通過<include>標(biāo)簽引入sql片段,<selectKey>為不支持自增的主鍵生成策略標(biāo)簽。
7.Mybatis執(zhí)行批量插入,能返回?cái)?shù)據(jù)庫主鍵列表嗎?
答:能,JDBC都能,Mybatis當(dāng)然也能。
8.Mybatis動(dòng)態(tài)sql是做什么的?都有哪些動(dòng)態(tài)sql?能簡(jiǎn)述一下動(dòng)態(tài)sql的執(zhí)行原理不?
答:Mybatis動(dòng)態(tài)sql可以讓我們?cè)赬ml映射文件內(nèi),以標(biāo)簽的形式編寫動(dòng)態(tài)sql,完成邏輯判斷和動(dòng)態(tài)拼接sql的功能,
Mybatis提供了9種動(dòng)態(tài)sql標(biāo)簽trim|where|set|foreach|if|choose|when|otherwise|bind。
其執(zhí)行原理為,使用OGNL從sql參數(shù)對(duì)象中計(jì)算表達(dá)式的值,根據(jù)表達(dá)式的值動(dòng)態(tài)拼接sql,以此來完成動(dòng)態(tài)sql的功能。
9.什么是MyBatis的接口綁定,有什么好處
接口映射就是在IBatis中任意定義接口,然后把接口里面的方法和SQL語句綁定,
我們直接調(diào)用接口方法就可以,這樣比起原來了SqlSession提供的方法我們可以有更加靈活的選擇和設(shè)置.
10.接口綁定有幾種實(shí)現(xiàn)方式,分別是怎么實(shí)現(xiàn)的?
接口綁定有兩種實(shí)現(xiàn)方式,一種是通過注解綁定,就是在接口的方法上面加上
@Select@Update等注解里面包含Sql語句來綁定,另外一種就是通過xml里面寫SQL來綁定,
在這種情況下,要指定xml映射文件里面的namespace必須為接口的全路徑名.
以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“互聯(lián)網(wǎng)常見Java ssm框架面試題”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743