写点什么

spring-beans 注册 Beans(四)BeanDefinition

用户头像
梦倚栏杆
关注
发布于: 2021 年 06 月 08 日

从前文,我们知道到处都是 BeanDefinition 和 BeanDefinitionHolder, 那么他们到底是什么呢?

1.BeanDefinition 定义

2.BeanDefinitionHolder 定义:

主要是持有了 BeanDefinition 对象 && 重命名,核心还在 BeanDefinition

3.BeanDefinition 实现

beanDefinition 加载样例:


4.查看几个 BeanDefinition 的定义:

(1)RootBeanDefinition

(2) ConfigurationClassBeanDefinition

class ConfigurationClassBeanDefinitionReader {   private void loadBeanDefinitionsForBeanMethod(BeanMethod beanMethod) {    //.....    ConfigurationClassBeanDefinition beanDef = new ConfigurationClassBeanDefinition(configClass, metadata);		beanDef.setResource(configClass.getResource());		beanDef.setSource(this.sourceExtractor.extractSource(metadata, configClass.getResource()));    //.....  }}
复制代码

(3) ScannedGenericBeanDefinition

public class ClassPathScanningCandidateComponentProvider implements EnvironmentCapable, ResourceLoaderAware { 	public Set<BeanDefinition> findCandidateComponents(String basePackage) {   //.......   if (isCandidateComponent(metadataReader)) {		  ScannedGenericBeanDefinition sbd = new ScannedGenericBeanDefinition(metadataReader);   }    //.......  }}
复制代码

(4) AnnotatedGenericBeanDefinition

public class AnnotatedBeanDefinitionReader {	public void registerBean(Class<?> annotatedClass, String name, Class<? extends Annotation>... qualifiers) {		AnnotatedGenericBeanDefinition abd = new AnnotatedGenericBeanDefinition(annotatedClass);    //....	}}
复制代码


发布于: 2021 年 06 月 08 日阅读数: 14
用户头像

梦倚栏杆

关注

还未添加个人签名 2018.04.22 加入

还未添加个人简介

评论

发布
暂无评论
spring-beans 注册 Beans(四)BeanDefinition