springboot自动装配(源码分析)

利用spi机制发现配置类并注册到spring容器中
以下示例使用springboot:3.2.1版本

相关注解

@SpringBootApplication
在这里插入图片描述
@EnableAutoConfiguration
在这里插入图片描述
在这里插入图片描述

AutoConfigurationImportSelector

使用@Import导入AutoConfigurationImportSelector,随着springboot启动,会创建AutoConfigurationImportSelector的实例,通过该实例寻找所有自动配置类

  • 在spring生命周期的beanfactory后置处理器处理阶段,后置处理器BeanDefinitionRegistryPostProcessor的实现类ConfigurationClassPostProcessor,使用AutoConfigurationImportSelector查找所有自动配置类

    AbstractApplicationContext#refresh
    AbstractApplicationContext#invokeBeanFactoryPostProcessors
    

    在这里插入图片描述
    org.springframework.boot.autoconfigure.AutoConfigurationImportSelector#getAutoConfigurationEntry
    在这里插入图片描述
    getCandidateConfigurations方法会读取META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports文件中的内容作为自动配置类的全路径类名
    在这里插入图片描述
    之后会将读取到的所有自动配置类的全路径名通过DefaultListableBeanFactory#registerBeanDefinition方法注册到spring容器中,这就意味着配置类开始生效

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值