Spring面試題(二)

  1. 說說Spring IOC的實現原理?
    答:工廠模式加上反射就是Spring IOC的實現原理。

  2. Spring應用程序有哪些不同組件?
    答:
    接口 - 定義功能
    Bean類 - 它包含屬性,setter和getter方法,函數等
    Spring面向切面編程(AOP) - 提供面向切面編程的功能
    Bean配置文件 - 包含類的信息以及如何配置它們
    用戶程序 - 使用接口

  3. 什麼是Spring的配置文件?
    答:Spring配置文件是XML文件,在這個文件中,描述了類之間是如何構建和相互依賴的,不過這些配置寫起來卻是麻煩且繁瑣,在沒有提供註解功能前,Spring就是個"配置地獄"。

  4. 什麼是Spring Bean?
    答:Spring會根據用戶提供給容器的配置元數據來一一創建相應對象存入IOC容器中,由IOC容器統一管理着這些對象,這些對象就是bean了。我自己的理解是,只要是Spring根據我們的描述類的信息,來爲我們生成並放到IOC容器中的對象,就是bean。

  5. Spring提供了哪些配置方式?
    答:基於xml配置,基於註解配置以及基於Java API配置。

  6. 說說Spring支持的幾種bean的作用域?
    答: 以下最後三個作用域,只有僅當用戶使用支持Web的ApplicationContext時,纔是可用的。默認的Spring bean的作用域是Singleton。
    Singleton:每個Spring IOC容器僅有一個單實例
    Prototype :每次請求都會產生一個新的實例
    Request :每一次網絡請求都會產生一個新的實例,在請求完成以後,實例會失效並被垃圾回收器回收。
    Session-:每一次網絡請求都會產生一個新的實例,同時該實例僅在當前請求的session內有效,在session過期後,實例也會隨之失效。
    Global-session : 類似於標準的網絡請求的Session作用域,不過它僅僅在基於portlet的web應用中才有意義。Portlet規範定義了全局Session的概念, 它被所有構成某個portlet web應用的各種不同的portlet所共享。在global session作用域中定義的bean被限定於全局portlet Session的生命週期範圍內。如果你在web中使用global session作用域來標識bean,那麼web會自動當成session類型來使用。

  7. 什麼是Spring的內部Bean?
    答:一個Bean被作爲另一個Bean的屬性,這個Bean就是內部Bean。

  8. Spring框架中的單例Bean是線程安全的嗎?
    答:一般來說,如果bean是service或者dao這些類型的,不會有什麼屬性的改變,就是線程安全的,不過如果涉及到的是實體對象,那就不是線程安全的了,這時候就要去保證實體對象在多線程下的安全性,比如把bean的作用域改成Prototype,讓每次請求都會產生一個新的實例,實例對象間沒有屬性共享,自然就是線程安全的了。

  9. 說說Spring框架中用到了哪些設計模式?
    答:單例模式,代理設計模式,模板方法模式,工廠設計模式等,這裏要說自己瞭解一些的設計模式,不要挖坑給自己。

  10. 什麼是Bean的裝配?
    答:Spring容器根據代碼的要求,創建出程序所需的bean對象,再傳遞給代碼的過程,就叫做Bean的裝配。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章