当前位置: 代码迷 >> 综合 >> spring源码解析之DeferredImportSelector执行延迟导入配置类
  详细解决方案

spring源码解析之DeferredImportSelector执行延迟导入配置类

热度:50   发布时间:2024-02-28 16:22:32.0

1.简介

 

之前在对象@Configuration注解配置类bean定义的解析中,最后有一步是执行延迟选择器导入

    /*** 扫描{@link BeanDefinitionHolder},填充{@link ConfigurationClass}* @param configCandidates*/public void parse(Set<BeanDefinitionHolder> configCandidates) {/* 解析配置类bean定义 */for (BeanDefinitionHolder holder : configCandidates) {BeanDefinition bd = holder.getBeanDefinition();try {/* 解析注解bean定义 */if (bd instanceof AnnotatedBeanDefinition) {parse(((AnnotatedBeanDefinition) bd).getMetadata(), holder.getBeanName());}/* 解析抽象bean定义,且bean类对象存在 */else if (bd instanceof AbstractBeanDefinition && ((AbstractBeanDefinition) bd).hasBeanClass()) {parse(((AbstractBeanDefinition) bd).getBeanClass(), holder.getBeanName());}else {/* 直接解析bean类名 */parse(bd.getBeanClassName(), holder.getBeanName());}}catch (BeanDefinitionStoreException ex) {
  相关解决方案