💡
原文中文,约14100字,阅读约需34分钟。
📝
内容提要
介绍Spring源码中的BeanDefinition概念及其实现类,包括手动向Spring容器注册Bean的方法。同时介绍了常见的BeanDefinition类型。
🎯
关键要点
- Spring 源码中重要概念:BeanDefinition,表示 Bean 的定义。
- BeanDefinition 是一个接口,继承自 BeanMetadataElement 和 AttributeAccessor 接口。
- AttributeAccessor 接口定义了元数据的访问方法,具体实现为 AttributeAccessorSupport。
- BeanDefinition 接口包含多个方法,用于描述 Bean 的属性和行为。
- BeanDefinition 的实现类包括 AbstractBeanDefinition、RootBeanDefinition、ChildBeanDefinition、GenericBeanDefinition、AnnotatedBeanDefinition 等。
- GenericBeanDefinition 兼具 RootBeanDefinition 和 ChildBeanDefinition 的功能,常用于手动注册 Bean。
- AnnotatedBeanDefinition 用于表示通过注解配置的 Bean 定义,提供获取注解信息的功能。
- 通过 XML 文件定义的 Bean 最终解析为 GenericBeanDefinition。
- RootBeanDefinition 主要用于定义父 Bean,而 ChildBeanDefinition 用于定义子 Bean。
- ConfigurationClassBeanDefinition 表示通过 @Bean 注解定义的 Bean。
- CreateFromClassBeanDefinition 用于创建对象并经过 Spring 的后置处理器。
- ClassDerivedBeanDefinition 用于描述类派生的 Bean 元数据,使用较少。
🏷️
标签
➡️