Spring面試題

一盘寡、 你對(duì)Spring框架的理解(特點(diǎn))蚌父? Spring框架有哪些模塊 ?

1贺纲、Spring是一個(gè)輕量級(jí)的IOC和AOP的容器框架航闺,目的是簡化企業(yè)應(yīng)用程序的開發(fā),使得開發(fā)者只需要關(guān)注業(yè)務(wù)需求猴誊;

特點(diǎn):簡化開發(fā)潦刃、解耦、集成其他框架

簡化開發(fā):spring對(duì)常用的API進(jìn)行了封裝懈叹;比如說對(duì)jdbc的封裝乖杠,使用spring jdbc訪問數(shù)據(jù)庫,就不需要考慮如何獲取連接和關(guān)閉的問題了

解耦:spring幫我們管理軟件之間的關(guān)系澄成,這樣對(duì)象之間的耦合性就降低了

集成其他框架:方便優(yōu)化和擴(kuò)展其他功能胧洒;比如說和Mybatis的集成

2、Spring框架已經(jīng)集合成20多個(gè)模塊墨状;

Spring Core:核心類庫卫漫,提供IOC服務(wù)

Spring Context:提供框架式的Bean訪問方式以及企業(yè)級(jí)功能

Spring AOP:提供AOP服務(wù)

Spring DAO:對(duì)JDBC的抽象,簡化了數(shù)據(jù)訪問異常的處理

Spring ORM:對(duì)現(xiàn)有的ORM框架的支持

Spring Web:提供了基本的面向Web綜合特性肾砂,例如多方文件上傳列赎;

Spring MVC:提供了面向Web應(yīng)用的Model-View-Controller實(shí)現(xiàn)

二、Spring的優(yōu)點(diǎn)

1镐确、簡化開發(fā)包吝、解耦、集成其他框架

2源葫、低侵入式設(shè)計(jì)漏策,代碼污染級(jí)別低

3、Spring的DI機(jī)制提高了軟件之間的解耦

4臼氨、Spring AOP支持將一些通用的任務(wù)進(jìn)行集中式的管理掺喻,例如:安全、事務(wù)储矩、日志等

三感耙、什么是控制反轉(zhuǎn)(IOC),什么是依賴注入(DI)持隧?

IOC:就是對(duì)象之間的依賴關(guān)系由容器來創(chuàng)建即硼,本來這層關(guān)系是由開發(fā)者自己來創(chuàng)建和維護(hù)的,使用spring框架后交給容器去管理維護(hù)屡拨,

這就是控制反轉(zhuǎn)只酥,BeanFactory接口是Spring Ioc容器的核心接口

DI:在spring容器中褥实,通過set方法建立對(duì)象之間的依賴關(guān)系

控制反轉(zhuǎn)是目標(biāo),而依賴注入是我們實(shí)現(xiàn)控制反轉(zhuǎn)的一種手段

四裂允、Java中實(shí)現(xiàn)依賴注入的三種方式

1损离、構(gòu)造器注入

2、set方法注入

3绝编、接口注入

五僻澎、Spring容器中如何創(chuàng)建對(duì)象

無參構(gòu)造創(chuàng)建

靜態(tài)工廠創(chuàng)建

實(shí)例工廠創(chuàng)建

六、Spring有幾種配置方式

1十饥、基于XML文件配置

2窟勃、基于注解的配置

注解代替XML方式的bean元素的配置,

這就是組件掃描逗堵,容器會(huì)掃描指定的包以及子包下面所有的類秉氧,如果類有一些特定的注解,則納入容器進(jìn)行管理

3蜒秤、基于Java的配置

七汁咏、Spring Bean的生命周期?

Spring Bean的生命周期指的是Bean元素被實(shí)例化垦藏,和被銷毀的過程梆暖。我們通過init-method屬性指定初始化方法;通過destroy-method方法指定銷毀方法

八掂骏、什么叫延遲加載轰驳?

容器啟動(dòng)后將所有作用域?yàn)閱卫腷ean創(chuàng)建好,但是有的業(yè)務(wù)場景我們不需要提前創(chuàng)建好

我們可以在bean中設(shè)置lazy-init為true弟灼,容器啟動(dòng)后作用域?yàn)閱卫腷ean就不再創(chuàng)建

九级解、什么叫自動(dòng)裝配?

就是將一個(gè)bean注入其他的bean的property中田绑,默認(rèn)情況下勤哗,容器不會(huì)自動(dòng)裝配,需要我們手動(dòng)設(shè)定掩驱。Spring可以通過Bean Factory的注入方式來搞定bean之間的依賴關(guān)系芒划,達(dá)到自動(dòng)裝配的目的

十、Spring Bean元素的作用域欧穴?

Spring Bean元素支持5種作用域

1民逼、Singleton:單例模式,在整個(gè)Spring IOC的容器中涮帘,在此模式定義的bean將只有一個(gè)實(shí)例

2拼苍、Prototype:多例模式,每次通過容器getBean方法獲取bean時(shí)调缨,都會(huì)產(chǎn)生一個(gè)新的Bean的實(shí)例

3疮鲫、Request:對(duì)于每次http請(qǐng)求時(shí)吆你,使用request定義的bean都會(huì)產(chǎn)生一個(gè)新的實(shí)例,只有在web應(yīng)用時(shí)俊犯,作用域才會(huì)生效

4妇多、Session:對(duì)于每次http session請(qǐng)求時(shí),使用session定義的bean都會(huì)產(chǎn)生一個(gè)新的實(shí)例

5瘫析、Globalsession:每個(gè)全局的http session砌梆,使用session定義的bean都會(huì)產(chǎn)生一個(gè)新的實(shí)例

十一默责、Spring Bean是線程安全的嗎贬循?

Spring Bean并沒有對(duì)單例的bean進(jìn)行多線程的封裝處理,線程安全問題和并發(fā)問題需要開發(fā)者自己考慮

實(shí)際上桃序,大部分的bean的狀態(tài)是固定的杖虾,因此spring單例的bean是安全的;如果bean有多種狀態(tài)媒熊,就需要考慮線程安全的問題了

十二奇适、Spring框架中都用到了哪些設(shè)計(jì)模式

1、代理模式芦鳍,在AOP中被使用最多

2嚷往、單例模式,在Spring配置文件中定義bean的時(shí)候默認(rèn)的是單例模式

3柠衅、工廠模式皮仁,BeanFactory用來創(chuàng)建對(duì)象的實(shí)例

4、模板方法菲宴,用來解決重復(fù)性代碼

5贷祈、前端控制器,Spring提供了DispatcherServlet對(duì)請(qǐng)求進(jìn)行分發(fā)

6喝峦、視圖幫助势誊,Spring提供了一系列的JSP標(biāo)簽

7、依賴注入谣蠢,它是貫穿于BeanFactory/ApplicationContext接口的核心理念

十三粟耻、Spring AOP(面向切面)編程的原理

AOP面向切面編程是一種思想,它是在業(yè)務(wù)處理過程中的切面進(jìn)行提取眉踱,以達(dá)到優(yōu)化代碼的目的挤忙,減少重復(fù)代碼的目的,比如我們在編寫各個(gè)模塊的業(yè)務(wù)邏輯時(shí)勋锤,都會(huì)寫日志記錄饭玲、事務(wù)控制等等這些明顯存在重復(fù)的代碼,我們運(yùn)用面向切面的編程思想叁执,采用橫切技術(shù)茄厘,將代碼中的重復(fù)部分抽取出來放在其他地方集中管理矮冬,調(diào)用。形成日志切面次哈、事務(wù)切面等胎署,使工作效率提高,代碼變得整潔優(yōu)雅窑滞,是面向?qū)ο缶幊痰囊环N擴(kuò)展

Spring AOP的編程原理:

代理機(jī)制

JDK的動(dòng)態(tài)代理:只能用于實(shí)現(xiàn)接口的類產(chǎn)生代理

Cglib代理:針對(duì)于沒有實(shí)現(xiàn)接口的類產(chǎn)生代理琼牧,應(yīng)用的是底層的字節(jié)碼增強(qiáng)技術(shù),生成當(dāng)前類的子類對(duì)象

十四哀卫、什么是Spring MVC巨坊?

Spring MVC是一個(gè)基于MVC框架用于簡化web應(yīng)用程序開發(fā)的應(yīng)用開發(fā)框架,它是spring的一部分此改,屬于表現(xiàn)層的框架

MVC(Model 模型趾撵,View 視圖,Controller 控制器)

它是一種軟件架構(gòu)思想共啃,也是一種開發(fā)模式占调,它將軟件劃分為三個(gè)模塊,分別是模型移剪、視圖究珊、控制器。

模型:用于封裝業(yè)務(wù)邏輯處理纵苛;視圖:用于數(shù)據(jù)展現(xiàn)和操作界面剿涮;控制器:用于協(xié)調(diào)視圖和模型;

處理流程:視圖將請(qǐng)求發(fā)送給控制器赶站,控制器選擇對(duì)應(yīng)的模型來處理幔虏,模型將處理結(jié)果交給控制器,控制器選擇合適的視圖來展現(xiàn)處理結(jié)果

十五贝椿、Spring MVC的五大組件

1想括、前端控制器(DispatcherServlet)

2、映射處理器(HandlerMapping)

3烙博、處理器(Controller)

4瑟蜈、模型和視圖(ModelAndView)

5、視圖解析器(ViewResolver)

十六渣窜、Spring MVC的運(yùn)行原理

客戶端將請(qǐng)求提交到前端控制器铺根,前端控制器查詢一個(gè)或多個(gè)映射處理器,找到處理請(qǐng)求的Controller乔宿,前端控制器將請(qǐng)求提交到Controller位迂,Controller調(diào)用業(yè)務(wù)邏輯處理后,返回模型和視圖,前端控制器查詢一個(gè)或多個(gè)視圖解析器掂林,找到模型和視圖指定的視圖臣缀,視圖負(fù)責(zé)將結(jié)果展現(xiàn)給用戶

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市泻帮,隨后出現(xiàn)的幾起案子精置,更是在濱河造成了極大的恐慌,老刑警劉巖锣杂,帶你破解...
    沈念sama閱讀 211,639評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件脂倦,死亡現(xiàn)場離奇詭異,居然都是意外死亡元莫,警方通過查閱死者的電腦和手機(jī)赖阻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來柒竞,“玉大人政供,你說我怎么就攤上這事播聪⌒嗷” “怎么了?”我有些...
    開封第一講書人閱讀 157,221評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵离陶,是天一觀的道長稼虎。 經(jīng)常有香客問我,道長招刨,這世上最難降的妖魔是什么霎俩? 我笑而不...
    開封第一講書人閱讀 56,474評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮沉眶,結(jié)果婚禮上打却,老公的妹妹穿的比我還像新娘。我一直安慰自己谎倔,他們只是感情好柳击,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,570評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著片习,像睡著了一般捌肴。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上藕咏,一...
    開封第一講書人閱讀 49,816評(píng)論 1 290
  • 那天状知,我揣著相機(jī)與錄音,去河邊找鬼孽查。 笑死饥悴,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播西设,決...
    沈念sama閱讀 38,957評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼起宽,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了济榨?” 一聲冷哼從身側(cè)響起坯沪,我...
    開封第一講書人閱讀 37,718評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎擒滑,沒想到半個(gè)月后腐晾,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,176評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡丐一,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,511評(píng)論 2 327
  • 正文 我和宋清朗相戀三年藻糖,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片库车。...
    茶點(diǎn)故事閱讀 38,646評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡巨柒,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出柠衍,到底是詐尸還是另有隱情洋满,我是刑警寧澤,帶...
    沈念sama閱讀 34,322評(píng)論 4 330
  • 正文 年R本政府宣布珍坊,位于F島的核電站牺勾,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏阵漏。R本人自食惡果不足惜驻民,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,934評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望履怯。 院中可真熱鬧回还,春花似錦、人聲如沸叹洲。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽疹味。三九已至仅叫,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間糙捺,已是汗流浹背诫咱。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評(píng)論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留洪灯,地道東北人坎缭。 一個(gè)月前我還...
    沈念sama閱讀 46,358評(píng)論 2 360
  • 正文 我出身青樓竟痰,卻偏偏與公主長得像,于是被迫代替她去往敵國和親掏呼。 傳聞我的和親對(duì)象是個(gè)殘疾皇子坏快,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,514評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容