Spring核心技术文档

IOC(Inversion Of Controller)

1.The IoC Container

IOC可以理解为对象通过构造方法或者工厂方法定义依赖的对象(Spring中称为Bean)。

IOC最底层的包是OC容器的基础包是org.springframework.beans和org.springframework.context:

包名 功能
org.springframework.beans 操作JavaBean的接口和类
org.springframework.beans.annotation 仅有一个类AnnotationBeanUtils(可将注解的属性复制到类中)
org.springframework.beans.factory Spring IOC功能的核心包
org.springframework.beans.factory.annotation 提供注解配置Bean的功能
org.springframework.beans.factory.aspectj 仅有一个ConfigurableObject接口(将类标记为需要通过切面进行依赖注入)
org.springframework.beans.factory.config SPI接口和BeanFactory配置相关的工具类
org.springframework.beans.factory.groovy 提供对于groovy定义的Bean的支持
org.springframework.beans.factory.parsing 支持Bean定义的解析功能
org.springframework.beans.factory.serviceloader Java6 新增的serviceloader功能的支持
org.springframework.beans.factory.support 支持org.springframework.beans.factory包的功能
org.springframework.beans.factory.wiring
org.springframework.beans.factory.xml 主要包含一个抽象的基于xml定义的BeanFactory实现
org.springframework.beans.propertyeditors Spring用于将字符串转换成Java对象属性的工具类
org.springframework.beans.support Bean的工具类,比如对于Bean的分类和容器
org.springframework.context 基于beans包,提供对于消息资源和观察者模式的支持,并且使容器内对象可以使用统一的工具获取资源
org.springframework.context.annotation 提供对于Application context的注解支持,包括组件扫描,基于Java元数据(注解)创建Spring管理的对象
org.springframework.context.annotation.aspectj 仅有一个类SpringConfiguredConfiguration,可以为@Configurable注释的非Spring管理对象提供依赖注入
org.springframework.context.config 支持引用上下文配置,主要使用xml配置
org.springframework.context.event 对于Spring事件(比如监听器)的支持
org.springframework.context.expression Bean的工具类,比如对于Bean的分类和容器
org.springframework.context.i18n Bean的工具类,比如对于Bean的分类和容器
org.springframework.context.index Bean的工具类,比如对于Bean的分类和容器
org.springframework.context.index.processor Bean的工具类,比如对于Bean的分类和容器
org.springframework.context.support Bean的工具类,比如对于Bean的分类和容器
org.springframework.context.weaving Bean的工具类,比如对于Bean的分类和容器

[1]: spring beans源码解读之–总结篇
[2]: java之元数据(metadata)