Spring的面試不用愁,看完這38道題再去

?

Spring的面試不用愁,看完這38道題再去

大家好,這一期呢,我們說38道spring的面試題。

第1道: 什么是spring?

Spring是基于Java語言的輕量型,松耦合的集成開發(fā)框架。

第2道: spring給我們帶來了什么好處?

好處有下面幾個,

1是預(yù)先定義的模板, 省去了我們自己添加的時間。

2是松耦合。

3是容易測試。

4是輕量級。

5是開發(fā)快捷。

6是強大的抽象化。

7是聲明性的支持。

第3道,spring中的模塊兒有哪些?

模塊包括1是測試。2是核心容器。3是面向特征的編程方式。4是數(shù)據(jù)訪問與集成。5是網(wǎng)絡(luò)開發(fā)模塊。

第4道,什么是loc?什么是dI?

ioc是依賴反轉(zhuǎn),dl是依賴注入。這種設(shè)計模式是為了提供松耦合性,從而去除程序中的強依賴性。

第5道,ioc容器起什么作用?

ioc容器的作用如下,創(chuàng)建實例,配置實例和集成依賴。

第6道,ioc容器有幾種類型?

有兩種: beanfactory和applicationcontext.

第7道,beanfactory和applicationcontext有什么區(qū)別?

beanfactory是基本容器,而applicationcontext是高級容器。Applicationcontext是擴展了beanfactory的接口。Applicationcontext比beanfactory提供了更多東西,比如跟aop的集成, 消息資源處理等等。

第8道, 構(gòu)造器注入和設(shè)置器注入的區(qū)別是什么?

構(gòu)造器注入沒有部分注入。設(shè)置器允許部分注入。

構(gòu)造器不能重寫設(shè)置器屬性。設(shè)置器可以重寫構(gòu)造器屬性。

如果有任何修改構(gòu)造器會創(chuàng)建一個新實例。如果屬性改變設(shè)置器并不會創(chuàng)建一個新實例。

構(gòu)造器適合用于有非常多的屬性的情況。設(shè)置器適合屬性比較少的情況。

第9道,什么是autowiring? 其模式是什么?

Autowiring使得程序員可以自動的注入bean。

其模式有如下4種, 一是缺省模式,也就是不激活autowiring。二是名字模式,使用的是設(shè)置器。三是類型模式,使用的是設(shè)置器。4是構(gòu)造器模式。

第10道,bean 的運行模式有幾種?

一共有5種, singleton, prototype, request, session, global session。

第11道, 什么情況下你使用singleton和prototype?

Singleton適合用在無狀態(tài)的bean里面, prototype, 適合用在有狀態(tài)的bean里面。

第12道, Spring支持幾種事務(wù)管理方式?

一共兩種, 程序化的事務(wù)管理和聲明性的事務(wù)管理。

第13道,jdbc模板的好處是什么?

代碼量減少了。你不是需要關(guān)心數(shù)據(jù)庫鏈接, 聲明,事務(wù)開始, 提交事務(wù),關(guān)閉連接這些事情,你可以直接對查詢進行操作了。

第14道,jdbc相關(guān)的應(yīng)用程序接口類有哪些?

JdbcTemplate, SimpleJdbcTemplate, NamedParameterJdbcTemplate, SimpleJdbcInsert, SimpleJdbcCall.

第15道,你如何用jdbc模板獲取記錄?

可以使用查詢方法來獲取記錄。有兩個接口可以使用, ResultSetExtractor, RowMapper。

第16道, NamedParameterJdbcTemplate的優(yōu)勢是什么?

最大的優(yōu)勢就是容易記憶,它支持傳值給有名字的參數(shù)。

第17道, SimpleJdbcTemplate的優(yōu)勢是什么?

它的優(yōu)勢是支持可變參數(shù)和autoboxing。

第18道,什么是aop?

Aop就是面向任務(wù)或者概念的編程技術(shù)。

第19道,aop的好處是什么?

aop允許你在業(yè)務(wù)邏輯之前或之后添加或刪除功能, 維護方便。

第20道,aop有哪些術(shù)語?

JoinPoint, Advice, PointCut, Aspect, Introduction, Target Object, Intercepter, Aop Proxy, Weaving.

第21道,什么是joinpoint?

Join point是指你程序中任何一個訪問點, 比如成員的訪問, 方法的運行,異常處理等等。

第22道, Spring是否支持所有的join points?

答案是否定的,spring只支持方法運行的join point。

第23道,什么是advice?

Advice是任務(wù)所采取的行動。

第24道,在aop中有幾種advice?

Before advice, after advice, after returning advice , throws advice, around advice.

第25道, 什么是point cut?

Point cut是aop的表達語言。

第26道, 什么是aspect?

Aspect是aop中包含advices和join points的類。

第27道, 什么是introduction?

Introduction是對一個類型的成員和方法的介紹。

第28道,什么是Target object?

Target object是一個和多個aspects的代理對象。

第29道,什么是interceptor?

Intercepter是只包含一個advice的類。

第30道,什么是weaving?

weaving是連接另一個程序的aspect的一個進程。

第31道,spring是否在編譯時期執(zhí)行weaving?

不會,spring只在運行期間執(zhí)行weaving。

第32道, 什么是aop的實現(xiàn)?

有三種實現(xiàn),spring aop,? apache aspectj, jboss aop.

第33道, Spring mvc的前端控制器類是什么?

Dispatcher servlet.

第34道, Controller注釋是干什么的?

Controller注釋是為了標(biāo)明一個controller類。

第35道, request mapping注釋的作用是什么?

request mapping是為了標(biāo)明一個方法的請求屬性。

第36道,viewresolver是干什么的?

是為了根據(jù)請求調(diào)用對應(yīng)的視圖組件。他是通過前綴和后綴屬性來對應(yīng)視圖組件的。

第37道, 哪種view resolver用的比較多?

Internal resource view resolver, 用的比較多。

第38道,? Spring mvc是否支持有效性驗證?

答案為是。

上面只是我個人對這個話題的一點心得體會,分享給大家,希望與大家討論,共同提高,歡迎拍磚。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容