首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么我不能扫描我的自动配置?

为什么我不能扫描我的自动配置?
EN

Stack Overflow用户
提问于 2020-09-03 18:06:11
回答 1查看 1.6K关注 0票数 1

Spring Boot文档中明确指出,必须通过spring.factories文件指定自动配置:

自动配置必须仅以这种方式加载。确保它们是在特定的包空间中定义的,并且它们永远不是组件扫描的目标。

我确实尝试过在我的自动配置类上放置一个@Component,并确保它将被组件扫描所捕获。好像很管用。

虽然我确实认为这是一种糟糕的实践,因为组件扫描在现实世界中不太可能真正获得它,但我想知道为什么文档对它有如此强烈的感觉。还有什么其他的危险我没有预料到,如果有的话,哪些危险?

编辑:在https://youtu.be/jDchAEHIht0?t=734 Stéphane和Brian中解释有两个阶段,一个叫做"UserConfiguration阶段“,另一个称为"AutoConfiguration阶段”。按照这个想法,在一个自动配置类上使用@ComponentScan会将它移动到“用户配置阶段”,这将基本上破坏自动配置的语义。

然而,在我的实验中,我没有能够打破它。只要我保留我的@Conditional注释,它就会像预期的那样工作.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-13 08:47:20

好像很管用。

正如您可能会怀疑的那样,文档中有一个很好的理由来显示该说明。自动配置的全部要点是,一旦用户配置被解析,它们就会被处理,原因很简单,订单是很重要的。

如果您有一个配置类生成一串bean的应用程序,并且如果用户已经表达了意见,您希望确保在自动配置中没有创建特定的bean,则需要确保在用户配置之后处理这个自动配置。你分享的视频描述了更多细节,我建议看完整的部分。

还有什么其他的危险我没有预料到,如果有的话,哪些危险?

希望上面的解释和你自己的编辑能告诉你。自动配置不是用户配置.在组件扫描中声明它们是用户配置的教科书。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63729375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档