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就初始化完成了,可以被容器使用。