context:component-scan 注解的扫描

<context:component-scan base-package="com.matt.cloud"/>

bean-context中

spring.handlers文件

http\://www.springframework.org/schema/context=org.springframework.context.config.ContextNamespaceHandler

public class ContextNamespaceHandler extends NamespaceHandlerSupport {

    public void init() {
        registerBeanDefinitionParser("property-placeholder", new PropertyPlaceholderBeanDefinitionParser());
        registerBeanDefinitionParser("property-override", new PropertyOverrideBeanDefinitionParser());
        registerBeanDefinitionParser("annotation-config", new AnnotationConfigBeanDefinitionParser());
        registerBeanDefinitionParser("component-scan", new ComponentScanBeanDefinitionParser());
        registerBeanDefinitionParser("load-time-weaver", new LoadTimeWeaverBeanDefinitionParser());
        registerBeanDefinitionParser("spring-configured", new SpringConfiguredBeanDefinitionParser());
        registerBeanDefinitionParser("mbean-export", new MBeanExportBeanDefinitionParser());
        registerBeanDefinitionParser("mbean-server", new MBeanServerBeanDefinitionParser());
    }

}

NamespaceHandlerSupport类

ComponentScanBeanDefinitionParser类扫描注解

根据配置的路径加载class文件,当配置问空时可以从jar文件中加载class文件

加载Class文件的方式是,解析Class文件,但没有 "类加载" classLoad发生

加载为 ScannedGenericBeanDefinition类

猜你喜欢

转载自www.cnblogs.com/zhongchang/p/12020039.html