SpringBoot 启动类标注注解:@Springboot
2022-11-01 10:21:59 8 举报
AI智能生成
SpringBoot 启动类标注注解:@Springboot
作者其他创作
大纲/内容
包含了@Configuration注解,都是标识一个可以被组件扫描器扫描的配置类,只不过@SpringBootConfiguration是被Spring Boot进行了重新封装命名而已
包含注解1:@SpringBootConfiguration //标明该类为配置类
它就是将 Registrar 这个组件类导入到容器中/作用就是注册一个 BasePackages 的Bean
包含注解:@Import(AutoConfigurationPackages.Registrar.class)
包含注解1:@AutoConfigurationPackage
将AutoConfigurationImportSelector 这个类导入到 Spring 容器中,AutoConfigurationImportSelector 可以帮助 Springboot 应用将所有符合条件的 @Configuration配置都加载到当前 SpringBoot 创建并使用的 IOC 容器( ApplicationContext )中。
包含注解2:@Import(AutoConfigurationImportSelector.class)
1从 spring.factory配置文件中加载自动配置类
2 加载的自动配置类中排除掉@EnableAutoConfiguration注解的exclude属性指定的自动配置类
3 使用 AutoCOnfigurationImportFilter接口去过滤自动配置类是否符合其目标注解(主要根据 有标注了 @Condition 为前缀的注解)判断是否符合条件| 例如:@ConditionalOnClass:某个class位于类路径上,才会实例化一个Bean。
4 触发AutoConfigurationImportEvent事件,告诉conditioneEvaluationReport(条件评估报告器)对象来分别记录符合条件和exclude的自动配置类
5 最后由spring将最后筛选后的自动配置类导入IOC容器中
自动配置实现总结:
包含注解2:@EnableAutoConfiguration //启动自动配置
:指定扫描路径,如果为空则以@ComponentScan注解的类所在的包为基本的扫描路径
属性1:basePackages、value
指定具体扫描的类
属性2:basePackageClasses
指定满足filter条件的类
属性3:includeFilters
指定排除Filter条件的类
属性4:excludeFilters
包含注解3:@ComponentScan // 扫描包功能
SpringBoot 启动类标注注解:@SpringbootApplication解析
收藏
收藏
0 条评论
回复 删除
下一页