spring ioc - scan
2015-12-22 21:23:45 22 举报
Spring IoC(Inversion of Control)是一种设计模式,通过将对象的创建、配置和管理交给容器来完成,而不是由程序员手动操作。在Spring框架中,IoC的核心概念是BeanFactory和ApplicationContext,它们负责管理和协调应用程序中的Bean对象。而Spring IoC扫描是指在应用程序启动时,自动扫描指定包路径下的所有类,并根据一定的规则将这些类注册到BeanFactory或ApplicationContext中,以便在程序运行时可以方便地获取和使用这些Bean对象。这种方式极大地简化了应用程序的开发和维护工作,提高了开发效率和代码质量。
作者其他创作
大纲/内容
ManagedBean注释及子类:new AnnotationTypeFilter(ManagedBean.class)
instatnce时配置默认过滤器:registerDefaultFilters()--可通过useDefaultFilters配置关闭
获取scaner:configureScanner()
compent-scan解析过程
AnnotationConfigUtils --注册各种BeanPostProcessor如:AutowiredAnnotationBeanPostProcessor
注册组件如:处理@Autowired的BeanPostProcessor:registerComponents()非常重要,spring扩展点
Named注释及子类:new AnnotationTypeFilter(Named.class)
获取NamespaceHandler:resolve()
BeanDefinitionParser(大量parser,如:)ComponentScanBeanDefinitionParser
扫描:findCandidateComponents()
NamespaceHandler
接spring ioc bean解析
第一步:判断include-filter:
Component注释及子类:new AnnotationTypeFilter(Component.class)
ClassPathScanningCandidateComponentProvider
注册默认的AnnotationProcessor集-- registerAnnotationConfigProcessors()
NamespaceHandlerResolver
ClassPathBeanDefinitionScanner
第二步:判断exclude-filter:
BeanDefinitionParserDelegate
扫描:doScan()
判断是否在include-filter或exclude-filter中:isCandidateComponent()
解析出最终的bean定义:parse()
解析(xml或注解):parse()
0 条评论
下一页