- 相關(guān)推薦
Spring的專業(yè)面試試題
1. 什么是bean裝配?
裝配,或bean 裝配是指在Spring 容器中把bean組裝到一起,前提是容器需要知道bean的依賴關(guān)系,如何通過依賴注入來把它們裝配到一起。
2. 什么是bean的自動裝配?
Spring 容器能夠自動裝配相互合作的bean,這意味著容器不需要和配置,能通過Bean工廠自動處理bean之間的協(xié)作。
3. 解釋不同方式的自動裝配 。
有五種自動裝配的方式,可以用來指導(dǎo)Spring容器用自動裝配方式來進(jìn)行依賴注入。
no:默認(rèn)的方式是不進(jìn)行自動裝配,通過顯式設(shè)置ref 屬性來進(jìn)行裝配。
byName:通過參數(shù)名 自動裝配,Spring容器在配置文件中發(fā)現(xiàn)bean的autowire屬性被設(shè)置成byname,之后容器試圖匹配、裝配和該bean的屬性具有相同名字的bean。
byType::通過參數(shù)類型自動裝配,Spring容器在配置文件中發(fā)現(xiàn)bean的autowire屬性被設(shè)置成byType,之后容器試圖匹配、裝配和該bean的屬性具有相同類型的bean。如果有多個(gè)bean符合條件,則拋出錯(cuò)誤。
constructor:這個(gè)方式類似于byType, 但是要提供給構(gòu)造器參數(shù),如果沒有確定的帶參數(shù)的構(gòu)造器參數(shù)類型,將會拋出異常。
autodetect:首先嘗試使用constructor來自動裝配,如果無法工作,則使用byType方式。
4.自動裝配有哪些局限性 ?
自動裝配的局限性是:
重寫: 你仍需用 和 配置來定義依賴,意味著總要重寫自動裝配。
基本數(shù)據(jù)類型:你不能自動裝配簡單的屬性,如基本數(shù)據(jù)類型,String字符串,和類。
模糊特性:自動裝配不如顯式裝配精確,如果有可能,建議使用顯式裝配。
5. 你可以在Spring中注入一個(gè)null 和一個(gè)空字符串嗎?
可以。
Spring注解
6. 什么是基于Java的Spring注解配置? 給一些注解的例子.
基于Java的配置,允許你在少量的Java注解的幫助下,進(jìn)行你的大部分Spring配置而非通過XML文件。
以@Configuration 注解為例,它用來標(biāo)記類可以當(dāng)做一個(gè)bean的定義,被Spring IOC容器使用。另一個(gè)例子是@Bean注解,它表示此方法將要返回一個(gè)對象,作為一個(gè)bean注冊進(jìn)Spring應(yīng)用上下文。
7. 什么是基于注解的容器配置?
相對于XML文件,注解型的配置依賴于通過字節(jié)碼元數(shù)據(jù)裝配組件,而非尖括號的聲明。
開發(fā)者通過在相應(yīng)的類,方法或?qū)傩陨鲜褂米⒔獾姆绞,直接組件類中進(jìn)行配置,而不是使用xml表述bean的裝配關(guān)系。
8. 怎樣開啟注解裝配?
注解裝配在默認(rèn)情況下是不開啟的,為了使用注解裝配,我們必須在Spring配置文件中配置 元素。
9. @Required 注解
這個(gè)注解表明bean的屬性必須在配置的時(shí)候設(shè)置,通過一個(gè)bean定義的顯式的屬性值或通過自動裝配,若@Required注解的bean屬性未被設(shè)置,容器將拋出BeanInitializationException。
10. @Autowired 注解
@Autowired 注解提供了更細(xì)粒度的控制,包括在何處以及如何完成自動裝配。它的用法和@Required一樣,修飾setter方法、構(gòu)造器、屬性或者具有任意名稱和/或多個(gè)參數(shù)的PN方法。
11. @Qualifier 注解
當(dāng)有多個(gè)相同類型的bean卻只有一個(gè)需要自動裝配時(shí),將@Qualifier 注解和@Autowire 注解結(jié)合使用以消除這種混淆,指定需要裝配的確切的bean。
Spring數(shù)據(jù)訪問
12.在Spring框架中如何更有效地使用JDBC?
使用SpringJDBC 框架,資源管理和錯(cuò)誤處理的代價(jià)都會被減輕。所以開發(fā)者只需寫statements 和 queries從數(shù)據(jù)存取數(shù)據(jù),JDBC也可以在Spring框架提供的模板類的幫助下更有效地被使用,這個(gè)模板叫JdbcTemplate (例子見這里here)
13. JdbcTemplate
JdbcTemplate 類提供了很多便利的方法解決諸如把數(shù)據(jù)庫數(shù)據(jù)轉(zhuǎn)變成基本數(shù)據(jù)類型或?qū)ο,?zhí)行寫好的或可調(diào)用的數(shù)據(jù)庫操作語句,提供自定義的數(shù)據(jù)錯(cuò)誤處理。
14. Spring對DAO的支持
Spring對數(shù)據(jù)訪問對象(DAO)的支持旨在簡化它和數(shù)據(jù)訪問技術(shù)如JDBC,Hibernate or JDO 結(jié)合使用。這使我們可以方便切換持久層。編碼時(shí)也不用擔(dān)心會捕獲每種技術(shù)特有的異常。
【Spring的專業(yè)面試試題】相關(guān)文章:
Spring面試試題匯總09-26
Spring面試題庫09-25
Python專業(yè)面試試題09-26
SOA專業(yè)面試試題02-07
Ruby專業(yè)面試試題08-04
高級網(wǎng)管專業(yè)面試試題08-04
通信工程專業(yè)面試試題09-25
ASP.NET專業(yè)面試試題09-26
有難度的Ruby專業(yè)面試試題08-04