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