Spring 启动核心流程简述

Spring 是事件驱动的框架,容器就像有生命周期的管理者——任何阶段性的动作都可以被监听。

1️⃣ 解析配置(注解 / XML)@Controller、@Service、@Configuration、@Component
   ↓
2️⃣ 扫描包,生成 BeanDefinition。@ComponentScan开始扫描你的注解或配置
   ↓
3️⃣ 实例化 Bean,执行依赖注入。注入属性。@PostConstruct、@Autowired、@Resource
   ↓
4️⃣ 注册AOP切面,创建代理对象。@Transactional, @Cacheable, @Async
   ↓
5️⃣ 发布 ApplicationContextRefreshedEvent。容器创建完所有 Bean 后,会发布一系列事件,最核心之一是:ApplicationContextRefreshedEvent
   ↓
6️⃣ 系统启动完成,可通过 context.getBean() 使用
   ↓
7️⃣ 容器关闭与 Bean 销毁。触发事件 ContextClosedEvent,调用destroy()。调用@PreDestroy标记的方法。

Bean生命周期的拓展周期

BeanFactoryProcesstoy?

Bean的上下文容器name相同会报错么?

依赖注入的方式?

特殊说明:
上述文章均是作者实际操作后产出。烦请各位,请勿直接盗用!转载记得标注原文链接:www.zanglikun.com
第三方平台不会及时更新本文最新内容。如果发现本文资料不全,可访问本人的Java博客搜索:标题关键字。以获取最新全部资料 ❤

免责声明:
本站文章旨在总结学习互联网技术过程中的经验与见解。任何人不得将其用于违法或违规活动!所有违规内容均由个人自行承担,与作者无关。