ssh相關(guān)面試題
ssh相關(guān)面試題
什么是Spring, 它有什么特點?下面就由學(xué)習(xí)啦小編為大家介紹一下ssh相關(guān)面試題的文章,歡迎閱讀。
ssh相關(guān)面試題篇1
什么是Spring, 它有什么特點
Spring是一個輕量級的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架。
◆輕量——從大小與開銷兩方面而言Spring都是輕量的。完整的Spring框架可以在一個大小只有1MB多的JAR文件里發(fā)布。并 且Spring所需的處理開銷也是微不足道的。此外,Spring是非侵入式的:典型地,Spring應(yīng)用中的對象不依賴于Spring的特定類。
◆控制反轉(zhuǎn)——Spring通過一種稱作控制反轉(zhuǎn)(IoC)的技術(shù)促進(jìn)了松耦 合。當(dāng)應(yīng)用了IoC,一個對象依賴的其它對象會通過被動的方式傳遞進(jìn)來,而不是這個對象自己創(chuàng)建或者查找依賴對象。你可以認(rèn)為IoC與JNDI相反——不 是對象從容器中查找依賴,而是容器在對象初始化時不等對象請求就主動將依賴傳遞給它。
◆面向切面——Spring提供了面向切面編程的豐富支持,允許通過分離應(yīng)用的 業(yè)務(wù)邏輯與系統(tǒng)級服務(wù)(例如審計(auditing)和事務(wù)()管理)進(jìn)行內(nèi)聚性的開發(fā)。應(yīng)用對象只實現(xiàn)它們應(yīng)該做的——完成業(yè)務(wù)邏輯——僅此而已。它們 并不負(fù)責(zé)(甚至是意識)其它的系統(tǒng)級關(guān)注點,例如日志或事務(wù)支持。
◆容器——Spring包含并管理應(yīng)用對象的配置和生命周期,在這個意義上它是 一種容器,你可以配置你的每個bean如何被創(chuàng)建——基于一個可配置原型(prototype),你的bean可以創(chuàng)建一個單獨的實例或者每次需要時都生 成一個新的實例——以及它們是如何相互關(guān)聯(lián)的。然而,Spring不應(yīng)該被混同于傳統(tǒng)的重量級的EJB容器,它們經(jīng)常是龐大與笨重的,難以使用。
◆框架——Spring可以將簡單的組件配置、組合成為復(fù)雜的應(yīng)用。在Spring中,應(yīng)用對象被聲明式地組合,典型地是在一個XML文件里。Spring也提供了很多基礎(chǔ)功能(事務(wù)管理、持久化框架集成等等),將應(yīng)用邏輯的開發(fā)留給了你。
ssh相關(guān)面試題篇2
1、spring 的優(yōu)點?
1.降低了組件之間的耦合性 ,實現(xiàn)了軟件各層之間的解耦
2.可以使用容易提供的眾多服務(wù),如事務(wù)管理,消息服務(wù)等
3.容器提供單例模式支持
4.容器提供了AOP技術(shù),利用它很容易實現(xiàn)如權(quán)限攔截,運行期監(jiān)控等功能
5.容器提供了眾多的輔助類,能加快應(yīng)用的開發(fā)
6.spring對于主流的應(yīng)用框架提供了集成支持,如hibernate,JPA,Struts等
7.spring屬于低侵入式設(shè)計,代碼的污染極低
8.獨立于各種應(yīng)用服務(wù)器
9.spring的DI機制降低了業(yè)務(wù)對象替換的復(fù)雜性
10.Spring的高度開放性,并不強制應(yīng)用完全依賴于Spring,開發(fā)者可以自由選擇spring的部分或全部
2、什么是DI機制?
依賴注入(Dependecy Injection)和控制反轉(zhuǎn)(Inversion of Control)是同一個概念,具體的講:當(dāng)某個角色
需要另外一個角色協(xié)助的時候,在傳統(tǒng)的程序設(shè)計過程中,通常由調(diào)用者來創(chuàng)建被調(diào)用者的實例。但在spring中
創(chuàng)建被調(diào)用者的工作不再由調(diào)用者來完成,因此稱為控制反轉(zhuǎn)。創(chuàng)建被調(diào)用者的工作由spring來完成,然后注入調(diào)用者
因此也稱為依賴注入。
spring以動態(tài)靈活的方式來管理對象 , 注入的兩種方式,設(shè)置注入和構(gòu)造注入。
設(shè)置注入的優(yōu)點:直觀,自然
構(gòu)造注入的優(yōu)點:可以在構(gòu)造器中決定依賴關(guān)系的順序。
3. 簡述你對IoC(Inversion of Control)的理解
一個類需要用到某個接口的方法,我們需要將類A和接口B的實現(xiàn)關(guān)聯(lián)起來,最簡單的方法是類A中創(chuàng)建一個對于接口B的實現(xiàn)C的實例,但這種方法顯然兩者的依賴(Dependency)太大了。而IoC的方法是只在類A中定義好用于關(guān)聯(lián)接口B的實現(xiàn)的方法,將類A,接口B和接口B的實現(xiàn)C放入IoC的 容器(Container)中,通過一定的配置由容器(Container)來實現(xiàn)類A與接口B的實現(xiàn)C的關(guān)聯(lián)。
4 解釋一下Dependency injection(DI,依賴注入)和IOC(Inversion of control,控制反轉(zhuǎn))?
參考答案:依賴注入DI是一個程序設(shè)計模式和架構(gòu)模型, 一些時候也稱作控制反轉(zhuǎn),盡管在技術(shù)上來講,依賴注入是一個IOC的特殊實現(xiàn),依賴注入是指一個對象應(yīng)用另外一個對象來提供一個特殊的能力,例如:把一個數(shù)據(jù)庫連接已參數(shù)的形式傳到一個對象的結(jié)構(gòu)方法里面而不是在那個對象內(nèi)部自行創(chuàng)建一個連接。控制反轉(zhuǎn)和依賴注入的基本思想就是把類的依賴從類內(nèi)部轉(zhuǎn)化到外部以減少依賴
應(yīng)用控制反轉(zhuǎn),對象在被創(chuàng)建的時候,由一個調(diào)控系統(tǒng)內(nèi)所有對象的外界實體,將其所依賴的對象的引用,傳遞給它。也可以說,依賴被注入到對象中。所以,控制反轉(zhuǎn)是,關(guān)于一個對象如何獲取他所依賴的對象的引用,這個責(zé)任的反轉(zhuǎn)。
5、描述一下Spring中實現(xiàn)DI(Dependency Injection)的幾種方式
方式一:接口注入,在實際中得到了普遍應(yīng)用,即使在IOC的概念尚未確立時,這樣的方法也已經(jīng)頻繁出現(xiàn)在我們的代碼中。
方式二:Type2 IoC: Setter injection對象創(chuàng)建之后,將被依賴對象通過set方法設(shè)置進(jìn)去
方式三:Type3 IoC: Constructor injection對象創(chuàng)建時,被依賴對象以構(gòu)造方法參數(shù)的方式注入
Spring的方式
6、什么是AOP? (Aspect --Oriented Programming)
面向切面編程(AOP)完善spring的依賴注入(DI),面向切面編程在spring中主要表現(xiàn)為兩個方面
1.面向切面編程提供聲明式事務(wù)管理
2.spring支持用戶自定義的切面
面向切面編程(aop)是對面向?qū)ο缶幊?oop)的補充,
面向?qū)ο缶幊虒⒊绦蚍纸獬筛鱾€層次的對象,面向切面編程將程序運行過程分解成各個切面。
AOP從程序運行角度考慮程序的結(jié)構(gòu),提取業(yè)務(wù)處理過程的切面,oop是靜態(tài)的抽象,aop是動態(tài)的抽象,
是對應(yīng)用執(zhí)行過程中的步驟進(jìn)行抽象,,從而獲得步驟之間的邏輯劃分
aop框架具有的兩個特征:
1.各個步驟之間的良好隔離性
2.源代碼無關(guān)性
ssh相關(guān)面試題篇3
事務(wù)就是對一系列的數(shù)據(jù)庫操作(比如插入多條數(shù)據(jù))進(jìn)行統(tǒng)一的提交或回滾操作,如果插入成功,那么一起成功,如果中間有一條出現(xiàn)異常,那么回滾之前的所有操作。
這樣可以防止出現(xiàn)臟數(shù)據(jù),防止數(shù)據(jù)庫數(shù)據(jù)出現(xiàn)問題。
開發(fā)中為了避免這種情況一般都會進(jìn)行事務(wù)管理。Spring中也有自己的事務(wù)管理機制,一般是使用TransactionMananger進(jìn)行管理,可以通過Spring的注入來完成此功能。
spring提供了幾個關(guān)于事務(wù)處理的類:
TransactionDefinition //事務(wù)屬性定義
TranscationStatus //代表了當(dāng)前的事務(wù),可以提交,回滾。
PlatformTransactionManager這個是spring提供的用于管理事務(wù)的基礎(chǔ)接口,其下有一個實現(xiàn)的抽象類AbstractPlatformTransactionManager,我們使用的事務(wù)管理類例如DataSourceTransactionManager等都是這個類的子類。
1. aop中的關(guān)鍵名詞有些那些,相互關(guān)系是什么?
攔截器: 代理
裝備(advice)
目標(biāo)對象
關(guān)切點:條件
連接點:方法、屬性
2. Spring中ApplicationContext的作用是什么?
beanFactory
國際化(getMesage)
資源管理:可以直接讀取一個文件的內(nèi)容(getResource)
加入web框架中(加入一個servlet或監(jiān)聽器)
事件處理
3. spring中的核心類有那些,各有什么作用?
BeanFactory:產(chǎn)生一個新的實例,可以實現(xiàn)單例模式
BeanWrapper:提供統(tǒng)一的get及set方法
ApplicationContext:提供框架的實現(xiàn),包括BeanFactory的所有功能
4. spring中的核心類有那些,各有什么作用?
BeanFactory:產(chǎn)生一個新的實例,可以實現(xiàn)單例模式
BeanWrapper:提供統(tǒng)一的get及set方法
ApplicationContext:提供框架的實現(xiàn),包括BeanFactory的所有功能