当前位置:首页>java>哆啦A梦之Spring启动过程

哆啦A梦之Spring启动过程

  • 2026-10-21 13:33:40
哆啦A梦之Spring启动过程

哆啦A梦之Spring启动过程

哆啦A梦之Spring启动过程

哆啦A梦之Spring启动过程

哆啦A梦之Spring启动过程

哆啦A梦之Spring启动过程

哆啦A梦之Spring启动过程

哆啦A梦之Spring启动过程

哆啦A梦之Spring启动过程

哆啦A梦之Spring启动过程

1️⃣ 加载配置 + 初始化容器 Spring启动第一件事:读配置(XML/注解/JavaConfig)→ 创建 ApplicationContext(比如 AnnotationConfigApplicationContext),这时候容器就“壳”搭好了。
2️⃣ 实例化容器 容器对象(如 GenericApplicationContext)被 new 出来,内部准备 BeanFactory、Environment、ResourceLoader 等核心组件。
3️⃣ 解析 BeanDefinitions ⭐重点! Spring 扫描所有 @Component、@Bean 等,把每个 Bean 的“说明书”(BeanDefinition)存进 BeanFactory 的 Map 里。注意:这时候还没创建 Bean 实例!
4️⃣ 实例化 Bean 遍历 BeanDefinition,通过反射调用构造器(或 FactoryMethod)创建 Bean 实例。单例 Bean 这时候才真正“出生”!
5️⃣ 依赖注入 ⭐重点! 根据 @Autowired / @Resource,从容器里找依赖对象并注入(字段 / setter / 构造器)。这时候你的 Service 才能用 Dao!
6️⃣ 生命周期初始化方法 如果 Bean 实现了 InitializingBean,或有 @PostConstruct / init-method,Spring 会在这一步调用。比如数据库连接池初始化!
7️⃣ BeanPostProcessors 处理 ⭐超重点! BeanPostProcessor 的 postProcessBeforeInitialization() 和 postProcessAfterInitialization() 会包夹生命周期方法。AOP 代理就在这一步生成!(比如 @Transactional 代理)
8️⃣ 发布 ContextRefreshedEvent 事件 所有单例 Bean 加载完毕,Spring 发布启动完成事件。你可以监听它做自定义操作(比如启动定时任务)。
9️⃣ 启动完成! 应用 ready,可以处理请求啦~

#哆啦a梦 #科普 #漫画 #java #八股文

最新文章

随机文章