Spring boot 如何从模块在spring引导配置类中使用@AutoConfigureOrder
在我的spring boot项目中,我使用了一个模块,它提供了一个Spring boot 如何从模块在spring引导配置类中使用@AutoConfigureOrder,spring-boot,module,spring-autoconfiguration,Spring Boot,Module,Spring Autoconfiguration,在我的spring boot项目中,我使用了一个模块,它提供了一个@Configuration类。配置是通过应用程序中的@Import(ConfigurationFromModule.class)导入的 模块的配置需要在某个自动配置之前进行。不幸的是,定义配置顺序的注释似乎在模块类中被忽略 我用@AutoConfigureBefore({somebuildinitiationtoconfiguration.class})注释了配置,但仍然somebuildinitiationtoconfigur
@Configuration
类。配置是通过应用程序中的@Import(ConfigurationFromModule.class)
导入的
模块的配置需要在某个自动配置之前进行。不幸的是,定义配置顺序的注释似乎在模块类中被忽略
我用@AutoConfigureBefore({somebuildinitiationtoconfiguration.class})
注释了配置,但仍然somebuildinitiationtoconfiguration
是在ConfigurationFromModule
之前触发的
出于好奇,我试图用@AutoConfigureOrder(1)
和@Primary
注释模块的配置,但它们没有改变任何东西
对于主应用程序中的@Configuration
类,所有这些注释都按预期工作
如何定义模块内自动配置的顺序?如果某些类在类路径中或不在类路径中,Spring自动配置提供基本配置
如果您希望按顺序配置,可以使用@DependsOn
@DependsOn("One")
public class Two{
}
这有助于创建bean“一”,然后创建bean“二”
Spring通过分析bean类自动检测依赖关系
如果Bean One有一个autowired属性或类型为2的构造函数参数,spring知道它必须在1之前实例化2。DependsOn是另一种方法-在内置自动配置之前,我需要从模块中加载自定义类。DependsOn只会确保在加载自定义类之前完成一些内置自动配置