Java中spring的面試題
1、一個spring Beans的定義需要包含什麼?
答:一個spring beans的定義包含容器所必知的所有配置元資料,包括如何建立一個bean,它的生命週期詳情及它的依賴。
2、spring支援的幾種bean的作用域。
spring框架支援一下五種bean的作用域:
singleton:bean在每個spring ioc容器中只有一個例項。在springbean中它是預設。
prototype:一個bean的定義可以有多個例項。
request:每次http請求都會建立一個bean,該作用域僅在基於web的spring ApplicationContext情形下有效。
seesion:在一個http session 中,一個bean定義對應一個例項。該作用域僅在基於web的spring ApplicationContext 情形下有效。
global-session:在一個全域性的HTTP-Seesion中,一個bean定義對應一個例項。該作用域僅在基於web的spring AppcationContext情形下有效。
3、怎樣定義類的作用域?
答:當定義一個<bean>在spring裡,我們還能給這個bean宣告一個作用域。它可以通過bean定義中scpoe屬性來定義。
常用 scope屬性:singleton(在每個spring ioc容器中一個bean定義只有一個物件例項)、prototype(每次從容器中獲取的bean都是新的物件)
4、spring框架中的單例bean的執行緒安全嗎?
答:不安全。
5、什麼是spring的內部bean?
答:當一個bean僅被用作另一個bean的屬性時,他能被宣告為一個內部bean,為了定義inner bean,在spring的基於XML的配置元資料中,可以在<property/>或<construct-arg/>元素內使用<bean/>元素,內部bean通常時匿名的,他們的scope一般時prototype。
6、在spring中如何注入一個Java集合?
答: spring提供一下幾個集合的配置元素:
<list>:型別用於注入一列值,允許有相同的值。
<set>:型別用於注入一組值。不允許有相同的值。
<map>:型別用於注入一組鍵值對,鍵和值都可以為任意值型別。
<props>:型別用於注入一組鍵值對,鍵和值都是隻能為string型別。
7、什麼時bean的自動裝配?
答:無須在spring配置檔案中描述JavaBean之間的依賴關係(如配置<property>、<constructor-arg>)。ioc容器會自動建立javaBean之間的關聯關係。
8、解釋不同方式的自動裝配。
答:
9、什麼是基於Java的spring註解配置?給一些註解的例子
答:基於Java的配置,執行你在少量的Java註解的幫助下,進行你的大部分spring配置而非通過xml檔案。(使用@註解名的方式,實現零配置,但是隻能是大部分)
比如:以@Configuration註解為例,它用來標記類可以當做一個bean的定義,被當作springIOC容器使用。另一個例子是@bean註解,他表示此方法將要返回一個物件,作為一個bean註冊spring應用上下文。
10、什麼是基於註解的容器配置?
答: 相對於xml檔案。。。。