在用户配置上使用@AutoConfigureAfter时,Spring Boot中的ApplicationContextRunner是否遵守Bean初始化顺序?

时间:2018-07-18 14:30:02

标签: spring-boot

我有一个单元测试,该单元测试在Spring Boot 2.0.3.RELEASE中使用ApplicationContextRunner。上下文运行器是我的单元测试类的一个字段,并用多个自动配置类初始化。在测试方法的主体中,我使用withConfiguration方法添加目标自动配置类。此自动配置类用@AutoConfigureAfter注释。
使用调试器,似乎可以将被测自动配置类初始化为在AutoConfigureAfter注释的目标之前。

我看过上下文运行程序代码,看来配置是按类名排序的。

这是预期的行为吗?

1 个答案:

答案 0 :(得分:0)

testing-auto-configurations-with-spring-boot-2-0

再次阅读以上链接,我现在意识到了自己的错误。我在单元测试方法中使用了withUserConfiguration。这似乎是针对用户配置类和自动配置类的。如果使用withConfiguration(AutoConfigurations.of(TargetAutoConfiguration.class))将自动配置类添加到上下文运行器,则一切都会按预期进行。