分布式扫描bean问题

今天我突然想到,为什么现在项目上会有一个 spring.factories 文件,原来它是用来批量扫描类,然后加到容器中的。

前几天我查了一下这个文件,发现这个文件是springboot运行时,会查询这个文件,然后把里面配置的类路径扫描,我就在想,springboot明明会自动扫描,为啥还要个这个。

我还自己去搞了一个配置类因为第三方模块的包路径完全和自己的包路径相同,所以我启动springboot的时候它就扫描到了)也可以用,然后我记没管它了。
所以我们现在就知道了有三种扫描bean的方式:

1、直接使用 @ComponentScan,但是springboot启动类注解已经包含他了,所以使用springboot就不用它了。

2、@Import({ScanTest.class}),挨个挨个扫描,这种方式也是可以的

3、用spring.factories 文件,springboot在运行的时候就会找到这个文件,加载里面的类到ioc中。

还有一个就是只要第三方包路径和自己完全相同,也是会被springboot启动类扫描的,但是几乎不可能!!!!第三方模块肯定有自己的包名,所以最上面遇到这个问题,纯粹是因为自己不规范!!!!

相关推荐
地瓜伯伯11 小时前
SpringBoot项目整合Elasticsearch启动失败的常见错误总结
spring boot·elasticsearch·spring cloud
妙蛙种子31112 小时前
【Java设计模式 | 创建者模式】建造者模式
java·开发语言·后端·设计模式·建造者模式
霸道流氓气质12 小时前
SpringBoot中集成LangChain4j+阿里百炼平台实现AI对话记忆功能、对话隔离、对话持久化到Redis功能
人工智能·spring boot·redis
zihao_tom12 小时前
Spring 简介
java·后端·spring
Java女侠_9年实战12 小时前
Spring框架“惯性思维”坑——@Transactional失效场景、Bean注入循环依赖
后端
Ares-Wang13 小时前
flask》》多线程并发数据安全问题 threading.local werkzeug.local.Local
后端·python·flask
覆东流13 小时前
第2天:Python变量与数据类型
开发语言·后端·python
FeBaby13 小时前
Java 高并发场景下 Redis 分布式锁(UUID+Lua)最佳实践
java·redis·分布式
Rust研习社14 小时前
Rust Default 特征详解:轻松实现类型默认值
开发语言·后端·rust
人道领域14 小时前
【黑马点评日记02】Redis缓存优化:商户查询性能提升百倍
java·spring boot·spring·servlet·tomcat·intellij-idea