我有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。我在这里错过了什么吗?
答案 0 :(得分:3)
AutoConfigureAfter控制处理配置文件的顺序并创建其bean定义。从这些定义创建bean的顺序是一个单独的问题,除其他外,还取决于bean之间存在的依赖关系。