一尘不染

@AutoConfigure后无法按需工作

spring-boot

我有3个spring-boot-starter项目

自动配置类之一具有以下代码:

@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。我在这里想念什么吗?


阅读 243

收藏
2020-05-30

共1个答案

一尘不染

AutoConfigureAfter控制处理配置文件和创建其Bean定义的顺序。根据这些定义创建bean的顺序是一个单独的问题,并且除其他因素外,还取决于bean之间存在的依赖关系。

2020-05-30