Spring ICO具体解释之整体结构
IOC介绍
开启Spring IOC源代码学习
一、spring IOC 中的Beanfactory
当中BeanFactory作为最顶层的一个接口类,它定义了IOC容器的基本功能规范。
BeanFactory 有三个子类:ListableBeanFactory、HierarchicalBeanFactory 和AutowireCapableBeanFactory。
比如 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体系结构