qidao123.com技术社区-IT企服评测·应用市场
标题:
springBoot自动装配机制
[打印本页]
作者:
东湖之滨
时间:
2023-6-7 10:44
标题:
springBoot自动装配机制
自动配置原理
@SpringBootApplication 是一个组合注解,由 @ComponentScan、@EnableAutoConfiguration 和 @SpringBootConfiguration 组成
@SpringBootConfiguration 与普通 @Configuration 相比,唯一区别是前者要求整个 app 中只出现一次
@ComponentScan
excludeFilters - 用来在组件扫描时进行排除,也会排除自动配置类
@EnableAutoConfiguration 也是一个组合注解,由下面注解组成
@AutoConfigurationPackage – 用来记住扫描的起始包
@Import(AutoConfigurationImportSelector.class) 用来加载 META-INF/spring.factories 中的自动配置类
为什么不使用 @Import 直接引入自动配置类
有两个原因:
让主配置类和自动配置类变成了强耦合,主配置类不应该知道有哪些从属配置
直接用 @Import(自动配置类.class),引入的配置解析优先级较高,自动配置类的解析应该在主配置没提供时作为默认配置
因此,采用了 @Import(AutoConfigurationImportSelector.class)
由 AutoConfigurationImportSelector.class 去读取 META-INF/spring.factories 中的自动配置类,实现了弱耦合。
另外 AutoConfigurationImportSelector.class 实现了 DeferredImportSelector 接口,让自动配置的解析晚于主配置的解析
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
欢迎光临 qidao123.com技术社区-IT企服评测·应用市场 (https://dis.qidao123.com/)
Powered by Discuz! X3.4