@AutoConfigureAfter不按预期工作

时间:2017-02-16 20:58:35

标签: spring-boot spring-annotations

我有3个spring-boot-starter项目

其中一个autoconfiguration类具有以下代码:

@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。我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:3)

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