首页 > 其他分享 >SpringBoot

SpringBoot

时间:2022-12-02 17:58:30浏览次数:37  
标签:SpringBoot DeferedImportSelector 配置 过滤 自动 自定义

自动装配原理

从Spring的IOC到SpringBoot的自动装配原理

DeferedImportSelector对Bean加载顺序的影响(当然是由@Import导入的)

 

 DeferedImportSelector有一个分组的概念,如果自定义了一个类,实现了Group接口,可以在这里面自定义排序规则。

 

 

 

 Group有延迟的特性,还有分组的特性。

扫描读取所有jar包当中的spring.factories文件,将文件中得配置读取到缓存中,为Map结构。

在这个过程,会排除和过滤掉不需要的自动配置类。

排除在EnableAutoConfiguration中可以配置要排除的自动配置类。

过滤则主要通过扫描spring.factories文件,找到对应key为:AutoConfigurationImportFilter,把对应配置了该key的配置类给过滤掉。比如:

比如有:@conditionalOnBean、@conditionalOnClass、@conditionalOnProperty 

有时候要求要有相应配置或者项目中有相关类才配加载自动配置。

最后扫描了之后可以在DeferedImportSelector的selectImports()方法中进行排序了。sortAutoConfigurations。

所以也可以自定义一个starter。

启动原理

为什么SpringBoot的jar可以直接运行?

 

标签:SpringBoot,DeferedImportSelector,配置,过滤,自动,自定义
From: https://www.cnblogs.com/zhf123/p/16945207.html

相关文章