Spring IoC 容器如何完成 BeanDefinition 加载和 Bean 实例化管理
旗舰版来源:alibaba初级工程师BeanDefinition加载与注册Spring三级缓存早期对象暴露Spring Bean生命周期
草稿
答案解析
Spring IoC 容器大体可以分成两个阶段: BeanDefinition 的加载注册 ,以及 Bean 的实例化和生命周期管理 。
BeanDefinition 可以理解成 Spring 对 Bean 的“元信息描述”,里面包含 class 类型、作用域、构造方法参数、属性依赖、初始化方法、销毁方法、是否懒加载等信息。Spring 后面创建 Bean,不是直接根据 XML 或注解创建,而是先把这些配置解析成 BeanDefinition。
以常见的 ApplicationContext 启动流程来说,核心入口一般是 refresh() 方法。
在 BeanDefinition 加载阶段,Spring 会做几件事:
1. 创建或刷新 BeanFactory 比如常见的是 DefaultListableBeanFactory,它是 Spring 底层最核心的 Bean 工厂,负责保存 BeanDefinition,也负责后续创建 Bean。
2. 解析配置来源 如果是 XML,会通过 `XmlBeanDefi
登录后查看完整内容
