Spring执行流程:
1.加载配置文件
Spring应用程序启动时,会加载配置文件,其中包括Spring的配置文件(如XML配置文件)、注解配置等。
2.创建容器
- Spring容器根据加载的配置文件来创建IoC容器(控制反转容器)。
- IoC容器负责管理应用程序中的所有Bean,包括实例化、装配、配置、管理Bean的生命周期等。
3.实例化Bean
Spring容器根据配置文件中的描述,实例化应用程序中定义的Bean对象。这可能包括单例(singleton)Bean和原型(prototype)Bean等。
4.依赖注入
Spring容器在实例化Bean之后,会自动执行依赖注入,将Bean所需要的依赖注入到Bean中,以完成Bean的装配过程。
5.初始化Bean
初始化阶段,Spring容器会调用Bean的初始化方法(如果有定义的话),这些方法可以是通过实现InitializingBean接口的afterPropertiesSet()
方法,或者在配置文件中指定的自定义初始化方法。
6.应用程序使用Bean
此时,应用程序可以通过Spring容器获取已经初始化和装配好的Bean,并使用它们来完成应用程序的业务逻辑。
7.执行销毁方法
当应用程序关闭或者容器被销毁时,Spring容器会执行Bean的销毁方法(如果有定义的话),这些方法可以是通过实现DisposableBean接口的destroy()
方法,或者在配置文件中指定的自定义销毁方法。
Bean的生命周期:(对应上面Spring执行流程)
1.实例化 : 为Bean分配内存空间
2.属性设置 :
3.初始化:
实现了各种 Aware 通知的⽅法,如 BeanNameAware、BeanFactoryAware、 ApplicationContextAware 的接⼝⽅法;
执⾏ BeanPostProcessor 初始化前置⽅法;
执⾏ @PostConstruct 初始化⽅法,依赖注⼊操作之后被执⾏;
执⾏⾃⼰指定的 init-method ⽅法(如果有指定的话);
执⾏ BeanPostProcessor 初始化后置⽅法。
4.使用
5.销毁