這張圖信息頗有限, 只是描述了下spring 框架的modules, java
官方描述
Core 和 Beans 兩個模塊 提供了框架的基本支持, 主要包含了 IOC (控制反轉) 和 DI (依賴注入) 特性, BeanFacotry 做爲工廠模式的超級接口, 耦合低 spring
總而言之: core 和 beans 主要控制了Object 的構成, 不管是自身仍是依賴, 一切都是以此爲基礎的。 架構
Context 模塊 在 core 和 beans 兩個模塊基礎之上構建, 繼承了beans模塊特性, 而且添加了國際化支持,事件傳播,資源加載, 開發式的上下文構建, 還支持 J2EE 特性,如EJB,JMX,還有基本的遠程調用, 超級接口 ApplicationContext
Expression Language 表達式支持, 這個主要就是用來支持一些spring XML 配置文件表達式 和 註解中一些表達式解析,讓配置有動態特性 app
系統最基礎模塊就是core 和 beans,因而可知控制一個bean的構成對於一個容器框架的總要性,至於context
應用對象的載體 框架
其實從整體來看的話一切就變的有條理,細節再深刻
由spring的版原本看一些問題, 大概在spring2.5 以前spring都是以單獨模塊發佈的 (具體不明確), 直接一個spring.jar,可是在spring2.5 以後spring更加詳細的劃分爲以上的moduels發佈,由此對於JAR包的分割也值得咱們更加的細化了解框架結構, 仍是值得思考和學習的 分佈式
在我看來就是功能更加細化, 各個部分的依賴關係明確,爲spring的良好的結構和擴展打下堅實的基礎 工具
整體來講,spring core 主要仍是負責環境配置信息,資源訪問,type的元數據 很少 可是體現了這些在框架中的的重要性 學習
public class BeanWrapperImpl extends AbstractPropertyAccessor implements BeanWrapper
SPRING BEAN 有那些? 生命週期
InitializingBean,DisposableBean 生產和銷燬
#JSR-250 @PostConstruct @PreDestroy 分別對應着 InitializingBean afterPropertiesSet 和 DisposableBean destroy 兩個方法
FactoryBean 通過加工修飾的BEAN / 一個BEAN 兩個對象能夠切換引用 具體使用查看相關文檔 spa
==================================
事件擴展點, 事件自己能爲項目帶來解耦, 或者可讓業務劃分爲主業務和旁支業務, 保證最終一致性便可 若是是在分佈式的環境中還能夠和消息驅動結合起來 設計
ApplicationEvent (定義) , ApplicationEventPublisherAware(發佈) ,ApplicationListener (監聽) ================================== 容器中BEAN 的建立的攔截處理 BeanPostProcessor , InitializingBean ================================== Factory 構建攔截 BeanFactoryPostProcessor ================================== I18N 支持 MessageSource