Spring IOC 加载过程

目录

1.什么是BeanFactory?

2.BeanFactory和ApplicationContext的区别?

3.简述SpringIOC的加载过程

4.Spring中有哪些扩展接口及调用时机?

5.简述Bean的生命周期


1.什么是BeanFactory?

BeanFactory是用于访问Spring Bean容器(IOC容器)的顶层核心接口,典型的工厂模式,用于生产Bean的一个Bean工厂,其提供了生产Bean所需的最基本规则。

Spring IOC 加载过程_第1张图片

2.BeanFactory和ApplicationContext的区别?

相同点:都可以创建Bean

不同点:

(1)功能上ApplicationContext实现了BeanFactory,是BeanFactory的子接口。ApplicationContext和BeanFacotry相比,提供了更多的扩展功能,比如国际化,自动注册BeanDefinition、自动读取配置文件、扫描配置注解等。

(2)加载上,BeanFactory采用的是延迟加载形式来注入Bean,只有在使用到某个Bean时(调用getBean()),才对该Bean进行加载实例化。这样,我们就不能发现一些存在的Spring的配置问题。如果Bean的某一个属性没有注入,BeanFacotry加载后,直至第一次使用调用getBean方法才会抛出异常。

ApplicationContext在容器启动时,一次性创建了所有的Bean。这样,在容器启动时,我们就可以发现Spring中存在的配置错误,这样有利于检查所依赖属性是否注入。 ApplicationContext启动后预载入所有的单实例Bean,通过预载入单实例bean ,程序需要Bean时无需等待,因为它们已经提前创建好了。

(3)相对于基本的BeanFactory,ApplicationContext 唯一的不足是占用内存空间。当应用程序配置Bean较多时,程序启动较慢。

3.简述SpringIOC的加载过程

4.Spring中有哪些扩展接口及调用时机?

  • BeanFactoryPostProcessor
  • BeanPostProcessor

5.简述Bean的生命周期

《Spring Bean生命周期》

你可能感兴趣的:(Spring,源码,Spring,SpringIOC,SpringIOC加载流程)