diff --git a/spring-context/src/main/java/org/springframework/context/aot/ApplicationContextInitializationCodeGenerator.java b/spring-context/src/main/java/org/springframework/context/aot/ApplicationContextInitializationCodeGenerator.java index 460a1a46be1..e49772d2d3c 100644 --- a/spring-context/src/main/java/org/springframework/context/aot/ApplicationContextInitializationCodeGenerator.java +++ b/spring-context/src/main/java/org/springframework/context/aot/ApplicationContextInitializationCodeGenerator.java @@ -30,6 +30,7 @@ import org.springframework.beans.factory.support.DefaultListableBeanFactory; import org.springframework.context.ApplicationContextInitializer; import org.springframework.context.annotation.ContextAnnotationAutowireCandidateResolver; import org.springframework.context.support.GenericApplicationContext; +import org.springframework.core.annotation.AnnotationAwareOrderComparator; import org.springframework.javapoet.CodeBlock; import org.springframework.javapoet.MethodSpec; import org.springframework.javapoet.ParameterizedTypeName; @@ -85,6 +86,8 @@ class ApplicationContextInitializationCodeGenerator implements BeanFactoryInitia APPLICATION_CONTEXT_VARIABLE); builder.addStatement("$L.setAutowireCandidateResolver(new $T())", BEAN_FACTORY_VARIABLE, ContextAnnotationAutowireCandidateResolver.class); + builder.addStatement("$L.setDependencyComparator($T.INSTANCE)", + BEAN_FACTORY_VARIABLE, AnnotationAwareOrderComparator.class); for (MethodReference initializer : this.initializers) { builder.addStatement(initializer.toInvokeCodeBlock(CodeBlock.of(BEAN_FACTORY_VARIABLE))); } diff --git a/spring-context/src/test/java/org/springframework/context/aot/ApplicationContextAotGeneratorTests.java b/spring-context/src/test/java/org/springframework/context/aot/ApplicationContextAotGeneratorTests.java index 34f601e0325..a85c2d80db7 100644 --- a/spring-context/src/test/java/org/springframework/context/aot/ApplicationContextAotGeneratorTests.java +++ b/spring-context/src/test/java/org/springframework/context/aot/ApplicationContextAotGeneratorTests.java @@ -141,8 +141,9 @@ class ApplicationContextAotGeneratorTests { testCompiledResult(applicationContext, (initializer, compiled) -> { GenericApplicationContext freshApplicationContext = toFreshApplicationContext(initializer); assertThat(freshApplicationContext.getBeanDefinitionNames()).isEmpty(); - assertThat(compiled.getSourceFile()).contains( - "beanFactory.setAutowireCandidateResolver(new ContextAnnotationAutowireCandidateResolver())"); + assertThat(compiled.getSourceFile()) + .contains("beanFactory.setAutowireCandidateResolver(new ContextAnnotationAutowireCandidateResolver())") + .contains("beanFactory.setDependencyComparator(AnnotationAwareOrderComparator.INSTANCE)"); }); }