Spring容器在初始化Bean时,遵循以下顺序:
- 实例化Bean:容器会先实例化Bean对象。
- 注入Bean属性:容器会为Bean注入相关的属性值。
- 调用Bean的初始化方法(如果有):如果Bean中定义了初始化方法(如通过@PostConstruct注解或在配置文件中指定init-method属性),容器会在Bean实例化和属性注入完成后调用该方法。
- Bean后置处理器的前置处理:容器会调用所有注册的Bean后置处理器的postProcessBeforeInitialization方法。
- 执行Bean的初始化方法(如果有):如果Bean中定义了初始化方法(如通过实现InitializingBean接口或在配置文件中指定init-method属性),容器会在Bean的属性注入和后置处理器前置处理完成后再次调用该方法。
- Bean后置处理器的后置处理:容器会调用所有注册的Bean后置处理器的postProcessAfterInitialization方法。
在以上步骤完成后,Bean就初始化完成了,可以被容器使用。