Spring ICO具体解释之整体结构
IOC介绍
开启Spring IOC源代码学习
一、spring IOC 中的Beanfactory
当中BeanFactory作为最顶层的一个接口类,它定义了IOC容器的基本功能规范。
比如 ListableBeanFactory 接口表示这些 Bean 是可列表的。而 HierarchicalBeanFactory 表示的是这些 Bean 是有继承关系的,也就是每一个Bean 有可能有父 Bean。AutowireCapableBeanFactory 接口定义 Bean 的自己主动装配规则。
这四个接口共同定义了 Bean 的集合、Bean 之间的关系、以及 Bean 行为.
public interface BeanFactory {
//这里是对FactoryBean的转义定义,由于假设使用bean的名字检索FactoryBean得到的对象是工厂生成的对象,
//假设须要得到工厂本身。须要转义
String FACTORY_BEAN_PREFIX = "&";
这里依据bean的名字。在IOC容器中得到bean实例,这个IOC容器就是一个大的抽象工厂。
Object getBean(String name) throws BeansException;
//这里依据bean的名字和Class类型来得到bean实例,和上面的方法不同在于它会抛出异常:假设依据名字取得的bean实例的Class类型和须要的不同的话。
Object getBean(String name, Class requiredType) throws BeansException;
//这里提供对bean的检索。看看是否在IOC容器有这个名字的bean
boolean containsBean(String name);
//这里依据bean名字得到bean实例。并同一时候推断这个bean是不是单件
boolean isSingleton(String name) throws NoSuchBeanDefinitionException;
//这里对得到bean实例的Class类型
Class getType(String name) throws NoSuchBeanDefinitionException;
//这里得到bean的别名。假设依据别名检索,那么其原名也会被检索出来
String[] getAliases(String name);
}
二、Spring IOC中的Beandefinition
三、spring IOC解析中BeandefinitionReader
这个解析过程主要通过下图中的类完毕:
四、spring IOC中的ApplicationContext体系结构