Spring Framework的核心在于Ioc容器,而支撑起核心容器的是Beans、Core和Context三个组件。如果说Spring的应用是一场戏的话,Beans就是演员,Core就是道具,而Context就是提供表演的舞台。
spring beans组件在spring frameworke中举足轻重,是spring的重中之重。bean对于spring而言,就如Object对于面向对象语言,毫不夸张的说,spring是面向bean编程。
这是spring官网提供的spring framework架构图,Beans包是核心容器Core Container的组件之一,因为有了Core Container,才有了spring丰富的生态圈,才有了强大的上层建筑。(对spring的架构及应用不多做阐述,有兴趣的可以查阅官网资料)
Beans包的核心功能就是对Bean对象生命周期的管理,包含Bean的定义、解析和创建等。本文应用spring-beans-4.3.9.RELEASE版本,查看项目目录结构:
根据项目的API文档及目录结构,大致可以将beans项目分为五个模块:
- org.springframework.beans :
对Java Beans进行的扩展,以操作JavaBeans对象,扩展了BeanInfo、PropertyEditor等 - org.springframework.beans.factory
轻量级的Ioc容器的核心实现 - org.springframework.beans.propertyeditors
转换属性类型的属性编辑器的实现 - org.springframework.beans.support
支持扩展包,对Beans的sort、hold等操作的支持 - org.springframework.beans.annotation
支持JavaBeans在注解驱动下工作
使用工具将beans代码结构转换成类图,如下图所示:
接下来,就是层剖析,看看Spring是如何实现轻量级的Ioc容器的。