spring的加载流程
时间: 2024-06-09 17:06:37 浏览: 114
spring加载
Spring的加载流程主要分为两个阶段:Bean的定义阶段和Bean的实例化阶段。
1. Bean的定义阶段
在这个阶段,Spring会解析配置文件并将Bean的定义存储在内存中,主要包括以下几个步骤:
- Resource定位:Spring会通过ResourceLoader接口来加载配置文件,常见的Resource包括FileSystemResource、ClassPathResource、UrlResource等。
- Bean定义的读取:Spring会使用BeanDefinitionReader来读取配置文件中的Bean定义。
- Bean定义的注册:读取到Bean定义之后,Spring会将它们注册到BeanDefinitionRegistry中,BeanDefinitionRegistry是一个接口,它的实现类包括DefaultListableBeanFactory、XmlBeanDefinitionReader等。
- Bean的后置处理:在Bean定义注册完成之后,Spring会对Bean进行一些后置处理操作,比如说根据条件判断是否需要忽略某个Bean等。
2. Bean的实例化阶段
在这个阶段,Spring会根据Bean的定义来创建Bean实例,主要包括以下几个步骤:
- Bean实例化:Spring会根据Bean的定义来实例化Bean,通常情况下是通过反射机制来实现的。
- Bean属性填充:在实例化Bean之后,Spring会自动将Bean的属性进行填充,包括基本属性、引用类型属性等。
- Bean的初始化:在属性填充完成之后,Spring会调用Bean的初始化方法,可以通过实现InitializingBean接口或者在配置文件中通过init-method来指定。
- Bean的后置处理:在Bean初始化完成之后,Spring会对Bean进行一些后置处理操作,比如说根据条件判断是否需要忽略某个Bean等。
以上就是Spring的加载流程,总的来说就是通过解析配置文件来创建Bean的定义,然后根据这些定义来实例化Bean并进行属性填充和初始化。
阅读全文