Spring核心--容器详解
Spring容器是什么
从概念上讲:Spring 容器是 Spring 框架的核心,是用来管理对象的。容器将创建对象,把它们连接在一起,配置它们,并由其通过IoC技术管理,串联他们的整个生命周期从创建到销毁。
从具象化讲:通过概念的描述有些同学还是一脸懵逼,在我们的项目中哪个东西是Spring容器?在java项目中,我们使用实现了org.springframework.context.ApplicationContext接口的实现类。在web项目中,我们使用spring.xml——Spring的配置文件。
Spring容器的功能包括:
Spring容器的类别及其特点:
具体的源码实现:
创建Spring Bean 是典型的工厂模式
BeanFactory 是最顶层的一个接口类,定义了IOC 容器最基本功能规范。
BeanFactory 有个重要的子类
ListableBeanFactory、HierarchicalBeanFactory、AutowireCapableBeanFactory
从类图中可以看到最终的默认实现类是DefaultListableBeanFactory,实现了所有的接口
定义这么多层接口的目的:每个接口都有它使用的场合,主要是为了区分在Spring 内部操作对象的传递和转化过程,对对象数据访问所做的限制
ListableBeanFactory 这些Bean 是可列表化
HierarchicalBeanFactory 表示Bean是有继承关系的
AutowireCapableBeanFactory bean的自动装配
三个接口总结:Bean的集合、Bean之间的关系、Bean行为
BeanFactory 只定义了IOC 容器的基本行为,不关心bean 是如何定义加载的。
IOC 容器具体的实现需要了解GenericApplicationContext、ClassPathXmlApplicationContext等
BeanDefinition 描述了Spring IOC容器中bean 之间的关系
Bean 的解析主要是对配置文件进行解析,这个过程较复杂,功能被分的很细,这个解析过程就是通过BeanDefinitionReader 来完成
到这里对Spring 框架体系有了一个基本了解,后续会持续更新