spring框架(2)

Spring框架能帶來哪些好處?

Dependency Injction(DI)方法使得構造器和JavaBean properties文件中的依賴關係一目瞭然

什麼時控制反轉(IOC)?什麼是依賴注入?

控制反轉是一種以給予目標程序中目標組件更多控制爲目標的設計模式,並在我們的實際工作中起到了有效的作用

依賴注入:是在編譯階段尚未知所需的功能是來自哪個類的情況下,將其他對象所依賴的功能對象實例化的模式。這就需要一種機制用來激活相應的組件以提供特定的功能,所以依賴注入是控制反轉的基礎

 

在java中依賴注入有以下幾種方式:

1。構造器注入

2.Setter方法注入

3.接口注入

 

請解釋一下Spring框架中的IOC?

Spring中org.Springframework.beans包和org.Springframework.context包構成了Spring框架IOC容器的基礎

BeanFactory接口提供 了一個先進的配置機制,使得任何類型的對象的配置成爲可能。ApplicationContext接口對BeanFactory接口實現的拓展。在BeanFactory接口的基礎上添加了其他功能。比如與Springd AOP更容易集成。也提供了message resourced 機制(用於國際化)、事件傳播以及應用層的特別配置,比如針對web應用的WebApplicationContext。org.Springframework.beans.BeanFactory是SpringIoc的具體實現,用來包裝和管理前面提到的各種bean.BeanFactory接口是SpringIoc容器的核心接口

 

BeanFactory和ApplicationContext的區別?

BeanFactory可以理解爲含有bean集合的工廠類。BeanFactory包含了多種Bean定義,以便在接收到客戶端的請求時將對應的bean進行實例化

BeanFactory還能在實例化對象時生成協作類之間的關係,此舉將bean自生與bean客戶端的配置中解放出來。BeanFactory還包含了對bean生命週期的控制,調用客戶端的初始化方法和銷燬方法

從表面看,ApplicationContext和BeanFactory一樣具有bean定義、bean關聯關係的設置,根據請求分發bean的功能,但ApplicationContext在此基礎上還增加了其他功能。

1.提供了支持國際化的文本消息

2.統一了資源文件讀取方式

3.已在監聽器中註冊的bean的事件

 

Spring有一下三種配置方式:

1.xml配置

2.註解配置

.java類配置

 

解釋Spring支持的幾種bean的作用域

Spring容器中的bean可以分爲5個範圍:

1.singleton:默認,每個容器中只有一個bean的實例,單例的模式BeanFactory自生來維護

2.prototype:爲每個bean請求提供一個實例

3.request:爲每個網絡請求創建一個實例,在請求完成以後,bean會失效並被垃圾回收器進行回收

4.session:與request的範圍類似,確保每一個seesion中有一個bean實例,在session過期後,bean會隨之消失

5.globe-session:全局作用域

 

 

Spring的自動裝配

在spring中,對象無需自己查找或者創建與其關聯的其他對象,有容器負責把需要相互協作的對象引用賦予各個對象,使用@Autowired來配置自動裝在模式。在使用@Autowired註解之前需要在Spring配置文件中進行配置。<context:annotation-config/>。在啓動SpringIoc時,容器自動裝載一個AutowiredAnnotationBeanPostProcessor後置處理器,當掃描到@Autowired、@Resource、@Inject時就會在SpringIoc容器中查找需要的Bean,並裝配給該對象的屬性

 

 

@Autowired和@Resource之間的區別:

1.@Autowired默認時按照類型裝配注入的,默認情況下它要求依賴對象必須存在

2.@Resource默認時按照名稱來裝配注入的,只有當找不到與名稱匹配的bean纔會按照類型來裝配注入

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