Spring boot @未按要求工作后自动配置

Spring boot @未按要求工作后自动配置,spring-boot,spring-annotations,Spring Boot,Spring Annotations,我有3个春季启动项目 其中一个自动配置类具有以下代码: @Configuration @ConditionalOnClass(value = Config.class) @AutoConfigureAfter(value = {FileGeneratorConfig.class, FileUploaderConfig.class}) public class JobConfig FileGeneratorConfig和FileUploaderConfig也是自动配置类 我希望首先创建File

我有3个春季启动项目

其中一个自动配置类具有以下代码:

@Configuration
@ConditionalOnClass(value = Config.class)
@AutoConfigureAfter(value = {FileGeneratorConfig.class, FileUploaderConfig.class})
public class JobConfig 
FileGeneratorConfig和FileUploaderConfig也是自动配置类

我希望首先创建FileUploaderConfig中创建的bean。所以测试这个,我在JobConfig和FileUploaderConfig中创建bean的方法中设置了一个断点。但是断点首先击中了JobConfig,这让我相信@AutoConfigureAfter没有工作。这是正确的假设吗

在FileUploaderConfig中,我还有以下内容:

@Bean
    FileUtilContainer fileUtilContainer(FileUtilContainerProperties fileUtilContainerProperties){
        return new FileUtilContainer(FileUtil.createDirectory(fileUtilContainerProperties.getArchive()),
                                     FileUtil.createDirectory(fileUtilContainerProperties.getWorking()),
                                     FileUtil.createDirectory(fileUtilContainerProperties.getConfirmation()), 
                                     FileUtil.createDirectory(fileUtilContainerProperties.getConfirmationProcessed()),
                                     FileUtil.createDirectory(fileUtilContainerProperties.getError()), 
                                     FileUtil.createDirectory(fileUtilContainerProperties.getErrorProcessed()));
    }
和FileUtilContainerProperties:

@Component
@ConfigurationProperties(prefix = "batch.letter.directory", ignoreUnknownFields = false)
public class FileUtilContainerProperties

但它并没有创建FileUtilContainerProperties bean。我在这里遗漏了什么吗?

自动配置程序控制配置文件的处理顺序及其bean定义的创建顺序。根据这些定义创建bean的顺序是一个独立的问题,它取决于bean之间存在的依赖关系。

谢谢,这很有意义。那么@Component不工作的第二部分呢。FileUtilContainerProperties未添加到上下文中?我猜它位于未进行组件扫描的包中。最好避免在自动配置中依赖组件扫描。我会在
FileUploaderConfig
上使用
@EnableConfigurationProperties(FileUtilContainerProperties.class)
。谢谢Andy,我用了它,效果很好。因此,我想作为使用自动配置的经验法则,我们应该避免组件扫描并使用@EnableConfigurationProperties,对吗?