Seb*_*ger 6 spring-boot component-scan spring-autoconfiguration
在Spring Boot 的文档中明确指出,自动配置必须通过spring.factories文件指定自动配置:
\n\n自动配置必须仅以这种方式加载。确保它们是在特定的包空间中定义的,并且它们永远不是组件扫描的目标。
\n
我确实尝试@Component在我的自动配置类上添加一个,并确保它会被组件扫描所拾取。似乎有效。
虽然我确实认为这是不好的做法,因为组件扫描不太可能在现实世界中真正拾取它,但我想知道为什么文档对此有如此强烈的感觉。是否还有其他我未能预料到的危险?如果有,是哪些?
\n编辑:\n在https://youtu.be/jDchAEHIht0?t=734 St\xc3\xa9phane 和 Brian 解释说,有两个阶段,一个称为“用户配置阶段”,另一个称为“自动配置阶段”。按照这种想法,建议使用@ComponentScan自动配置类会将其移至“用户配置阶段”,这基本上会破坏自动配置的语义。
然而,我在实验中未能打破它。只要我保留@Conditional注释,它似乎就能按预期工作......
似乎有效。
正如您可能怀疑的那样,该注释出现在文档中是有充分理由的。自动配置的全部要点是,一旦解析了用户配置,就会处理它们,原因很简单,顺序很重要。
如果您有一个应用程序,其中的配置类生成一堆 bean,并且您希望确保在用户表达意见时不会创建自动配置中的某个 bean,那么您需要确保此自动配置在用户配置后进行处理。您分享的视频更详细地描述了这一点,我建议您观看完整的部分。
是否还有其他我未能预料到的危险?如果有,是哪些?
希望上面的解释和您自己的编辑能告诉您。自动配置不是用户配置。在组件扫描中声明它们是用户配置的教科书。
| 归档时间: |
|
| 查看次数: |
2439 次 |
| 最近记录: |