4

在我的 Spring Boot 项目中,我使用了一个模块,它提供了一个@Configuration类。配置是通过类中导入@Import(ConfigurationFromModule.class)Application

来自模块的配置需要在某个AutoConfiguration. 不幸的是,定义配置顺序的注释似乎在模块类中被忽略了。

我用 注释了配置@AutoConfigureBefore({SomeBuildInAutoConfiguration.class}),但之前仍然SomeBuildInAutoConfiguration被触发ConfigurationFromModule

出于好奇,我尝试ConfigurationFromModule@AutoConfigureOrder(1)and进行注释,@Primary但它们并没有改变任何东西。

对于@Configuration主应用程序中的类,所有这些注释都按预期工作。

如何在模块中定义 AutoConfiguration 的顺序?

4

1 回答 1

0

如果某些类是否在类路径中,Spring AutoConfiguration 会提供基本配置。

如果您想要该配置,您可以使用@DependsOn

@DependsOn("One") 
public class Two{
    
}

这可以帮助您创建 bean“One”,然后创建 bean“Two”。

Spring 通过分析 bean 类自动检测依赖关系。

如果 Bean One 具有自动装配属性或类型为 Two 的构造函数参数,则 spring 知道它必须在 One 之前实例化 Two。

于 2020-08-23T06:27:16.830 回答