Spring IoC容器加载过程
·
┌─────────────────────────────────────────────────────────────────────────────┐
│ Spring IoC 容器加载过程 (宏观流程) │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ 1. 资源定位与加载 ───────┐ │
│ │ (Bean尚未诞生,容器在读"说明书") │
│ 2. 解析与注册BeanDefinition │ │
│ │ │
│ 3. BeanFactoryPostProcessor处理 │ │
│ │ (容器在修改"说明书") │
│ 4. 实例化Bean ───────────┼─────────────────────────────────────────────────┤
│ │ Bean的生命周期 (微观过程) │
├─────────────────────────┼─────────────────────────────────────────────────┤
│ │ │
│ │ 4.1 实例化 │──────→ 1. 构造器实例化 (Bean"诞生") │
│ │ │ │
│ │ 4.2 依赖注入 │──────→ 2. @Autowired/@Value/@Resource 属性注入 │
│ │ │ │
│ │ 4.3 Aware接口回调 │──────→ 3. BeanNameAware, BeanFactoryAware等回调 │
│ │ │ │
│ │ 4.4 BeanPostProcessor│────→ 4. postProcessBeforeInitialization │
│ │ 处理 │ │
│ │ │──────→ 5. @PostConstruct 注解方法执行 │
│ │ │ │
│ │ │──────→ 6. InitializingBean.afterPropertiesSet() │
│ │ │ │
│ │ │──────→ 7. 自定义 init-method 执行 │
│ │ │ │
│ │ │──────→ 8. postProcessAfterInitialization (AOP代理)│
│ │ │ │
│ 5. Bean初始化完成,
投入使用 │──────→ 9. Bean完全初始化,进入"运行中"状态 │
│ │ │
│ 6. 容器运行期 │──────→ 10. Bean提供服务期 │
│ │ │
│ 7. 容器关闭,销毁Bean │──────→ 11. @PreDestroy 注解方法执行 │
│ │ │
│ │──────→ 12. DisposableBean.destroy() 执行 │
│ │ │
│ │──────→ 13. 自定义 destroy-method 执行 │
└─────────────────────────┴─────────────────────────────────────────────────┘
更多推荐


所有评论(0)