轉帖|行業(yè)資訊|編輯:郝浩|2016-02-22 16:04:29.000|閱讀 1046 次
概述:本篇講解了Spring的總體架構中重要組件Bean的結構及用途。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
前面已經說明了Bean組件對Spring的重要性,下面看看Bean這個組件式怎么設計的。Bean組件在Spring的org.springframework.beans包下。這個包下的所有類主要解決了三件事:Bean的定義、Bean 的創(chuàng)建以及對Bean的解析。對Spring的使用者來說唯一需要關心的就是Bean的創(chuàng)建,其他兩個由Spring在內部幫你完成了,對你來說是透明的。
SpringBean的創(chuàng)建時典型的工廠模式,他的頂級接口是BeanFactory,下圖是這個工廠的繼承層次關系:
BeanFactory有三個子類:ListableBeanFactory、HierarchicalBeanFactory和Autowire Capable Bean Factory。但是從上圖中我們可以發(fā)現(xiàn)最終的默認實現(xiàn)類是DefaultListableBeanFactory,他實 現(xiàn)了所有的接口。那為何要定義這么多層次的接口呢?查閱這些接口的源碼和說明發(fā)現(xiàn),每個接口都有他使用的場合,它主要是為了區(qū)分在Spring內部在操作過程中對象的傳遞和轉化過程中,對對象的 數(shù)據(jù)訪問所做的限制。例如ListableBeanFactory接口表示這些Bean是可列表的,而HierarchicalBeanFactory表示的是這些Bean是有繼承關系的,也就是每個Bean有可能有父Bean。 AutowireCapableBeanFactory接口定義Bean的自動裝配規(guī)則。這四個接口共同定義了Bean的集合、Bean之間的關系、以及Bean行為。
Bean的定義主要有BeanDefinition描述,如下圖說明了這些類的層次關系:
Bean的定義就是完整的描述了在Spring的配置文件中你定義的節(jié)點中所有的信息,包括各種子節(jié)點。當Spring成功解析你定義的一個節(jié)點后,在Spring的內部他就被轉化 成BeanDefinition對象。以后所有的操作都是對這個對象完成的。 Bean的解析過程非常復雜,功能被分的很細,因為這里需要被擴展的地方很多,必須保證有足夠的靈活性,以應對可能的變化。Bean的解析主要就是對Spring配置文件的解析。這個解析過程主要通過 下圖中的類完成:
當然還有具體對tag的解析這里并沒有列出。
本站文章除注明轉載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn