Spring Framework的核心在于Ioc容器,而支撐起核心容器的是Beans脏里、Core和Context三個(gè)組件。如果說(shuō)Spring的應(yīng)用是一場(chǎng)戲的話迫横,Beans就是演員酝碳,Core就是道具,而Context就是提供表演的舞臺(tái)疏哗。
spring beans組件在spring frameworke中舉足輕重,是spring的重中之重返奉。bean對(duì)于spring而言,就如Object對(duì)于面向?qū)ο笳Z(yǔ)言雷逆,毫不夸張的說(shuō)哮针,spring是面向bean編程坦袍。
這是spring官網(wǎng)提供的spring framework架構(gòu)圖等太,Beans包是核心容器Core Container的組件之一,因?yàn)橛辛薈ore Container缩抡,才有了spring豐富的生態(tài)圈,才有了強(qiáng)大的上層建筑压真。(對(duì)spring的架構(gòu)及應(yīng)用不多做闡述蘑险,有興趣的可以查閱官網(wǎng)資料)
Beans包的核心功能就是對(duì)Bean對(duì)象生命周期的管理滴肿,包含Bean的定義佃迄、解析和創(chuàng)建等。本文應(yīng)用spring-beans-4.3.9.RELEASE版本堆缘,查看項(xiàng)目目錄結(jié)構(gòu):
根據(jù)項(xiàng)目的API文檔及目錄結(jié)構(gòu)普碎,大致可以將beans項(xiàng)目分為五個(gè)模塊:
- org.springframework.beans :
對(duì)Java Beans進(jìn)行的擴(kuò)展,以操作JavaBeans對(duì)象缀皱,擴(kuò)展了BeanInfo、PropertyEditor等 - org.springframework.beans.factory
輕量級(jí)的Ioc容器的核心實(shí)現(xiàn) - org.springframework.beans.propertyeditors
轉(zhuǎn)換屬性類型的屬性編輯器的實(shí)現(xiàn) - org.springframework.beans.support
支持?jǐn)U展包唆鸡,對(duì)Beans的sort枣察、hold等操作的支持 - org.springframework.beans.annotation
支持JavaBeans在注解驅(qū)動(dòng)下工作
使用工具將beans代碼結(jié)構(gòu)轉(zhuǎn)換成類圖,如下圖所示:
接下來(lái)序目,就是層剖析,看看Spring是如何實(shí)現(xiàn)輕量級(jí)的Ioc容器的握童。