Spring Boot-5-DefaultListableBeanFactory

Spring IoC作用是管理Bean的生命周期并提供用户使用bean,所以我们有必要来看看Spring如何管理这些Bean的,前面我们提到IoC基本功能由BeanFactory系列类型实现,BeanFactory系列中就是DefaultListableBeanFactory这个类型完成的BeanFactory的基本功能。先来看下继承体系:

Spring Boot-5-DefaultListableBeanFactory_第1张图片

Spring Boot在启动时,从大体流程上,我们应该可以预料到,肯定是ApplicationContext先被构造,然后才是BeanFactory被构造,因为是ApplicationContext聚合了BeanFactory。在ApplicationContext初始化的时候,往BeanFactory中装载bean。这是我们猜测的流程。

二、DefaultListableBeanFactory被谁持有

直接给出结论,是这2个ApplicationContext的子类
org.springframework.context.support.AbstractRefreshableApplicationContext
org.springframework.context.support.GenericApplicationContext
application context会在初始化的时候,往bean factory中装载所有bean。

Spring Boot-5-DefaultListableBeanFactory_第2张图片

三、DefaultListableBeanFactory

org.springframework.beans.factory.support.DefaultListableBeanFactory

它在support包下面,listable的意思是能够枚举出BeanFactory中所有实例的相关信息。这是个基本且重要的能力,几乎是容器的主要能力,所以,DefaultListableBeanFactory是BeanFactory的主要能力实现者。在ApplicationContext的refresh方法中,应该会往这里存入所有实例。

public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFactory
		implements ConfigurableListableBeanFactory, BeanDefinitionRegistry, Serializable {



}

你可能感兴趣的:(#,Spring原理篇,spring,spring,boot,java)