springBoot组件扫描
2024-03-29 15:12:05 6 举报
springboot组件扫描主要流程
作者其他创作
大纲/内容
在invokeBeanFactoryPostProcessors(ConfigureableListableBeanFactrory beanFactory)中扫描的组件
ConfigurableApplicationContext
配置类解析器
解析ComponentScan注解
解析处理配置类
EnableAutoConfiguration注解
SpringBootConfiguration注解
ConfigurationClassParser配置类解析器
+ registry+ resourceLoader
+ parse(ConfigCandidates)+font color=\"#e74f4c\
配置类后置处理器
ComponentScan注解解析器
AbstractApplicationContext
目标:为什么在没有配置扫描路径的时候,会默认扫描启动类所在路径下的包?
SpringBootApplication注解
ComponentScanAnnotationParser注解解析器
component注解是否有设置basePackage
调用bean工厂的后置处理器
1.没有配置组件扫描,加了@RestController等注解的类,也能被扫描到,这是如何实现的?2.为什么类没有放在启动类所在的包及其子包下,就不会被扫描到?(即为什么必须放到启动类所在包及其子包下,才能被扫描到)3.如果启动类包之外的类想被扫描到,则需要在启动类上添加注解@ComponentScan(“指定扫描包路径”)
ConfigurationClassPostProcessor
调用bean工厂后置处理器
Configuration注解
Component注解
invokeBeanFactoryPostProcessor
ConfigurationClassParser
容器刷新
获取加了@ComponentScan注解的类所在的包名进行设置
refresh
ComponentScanAnnotationParse
0 条评论
回复 删除
下一页