我有多个定义bean的Spring @Configuration
类。我运行应用程序的主要类是@SpringBootApplication(scanBasePackageClasses = BasePackage.class)
。
我的问题是,这些组件被扫描并创建bean的顺序是什么?
@SpringBootApplication(scanBasePackageClasses = BasePackage.class)
public class MyApplication {
public static void main(final String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
和配置
@Configuration
class Config1{
// defines beans
}
@Configuration
class Config2{
// defines beans
}
另一个maven依赖项也有Config3
@Configuration
class Config3{
// defines beans
}
我试图搜索文档,但是没有找到这些组件被扫描和初始化的顺序。
我问这个问题是因为我有一个具有@ConditionalOnMissingBean的bean,以及定义它的多个配置。正式文档声明中的位置在哪里,将扫描@Configuration
类的顺序。
答案 0 :(得分:0)
第一步,Spring扫描相对于基本包的所有类中的bean。然后春天将创建豆并将其注入。
如果需要按特定顺序创建bean,可以通过添加@DependsOn
从文档中
depends-on属性可以显式强制将一个或多个bean设置为 在使用此元素的bean初始化之前进行了初始化。