Make sure that AnnotationAwareOrderComparator is configured with AOT
Closes gh-28988
This commit is contained in:
parent
9b2a40a3bc
commit
8a51e31069
|
|
@ -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)));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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)");
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue