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.ApplicationContextInitializer;
|
||||||
import org.springframework.context.annotation.ContextAnnotationAutowireCandidateResolver;
|
import org.springframework.context.annotation.ContextAnnotationAutowireCandidateResolver;
|
||||||
import org.springframework.context.support.GenericApplicationContext;
|
import org.springframework.context.support.GenericApplicationContext;
|
||||||
|
import org.springframework.core.annotation.AnnotationAwareOrderComparator;
|
||||||
import org.springframework.javapoet.CodeBlock;
|
import org.springframework.javapoet.CodeBlock;
|
||||||
import org.springframework.javapoet.MethodSpec;
|
import org.springframework.javapoet.MethodSpec;
|
||||||
import org.springframework.javapoet.ParameterizedTypeName;
|
import org.springframework.javapoet.ParameterizedTypeName;
|
||||||
|
|
@ -85,6 +86,8 @@ class ApplicationContextInitializationCodeGenerator implements BeanFactoryInitia
|
||||||
APPLICATION_CONTEXT_VARIABLE);
|
APPLICATION_CONTEXT_VARIABLE);
|
||||||
builder.addStatement("$L.setAutowireCandidateResolver(new $T())",
|
builder.addStatement("$L.setAutowireCandidateResolver(new $T())",
|
||||||
BEAN_FACTORY_VARIABLE, ContextAnnotationAutowireCandidateResolver.class);
|
BEAN_FACTORY_VARIABLE, ContextAnnotationAutowireCandidateResolver.class);
|
||||||
|
builder.addStatement("$L.setDependencyComparator($T.INSTANCE)",
|
||||||
|
BEAN_FACTORY_VARIABLE, AnnotationAwareOrderComparator.class);
|
||||||
for (MethodReference initializer : this.initializers) {
|
for (MethodReference initializer : this.initializers) {
|
||||||
builder.addStatement(initializer.toInvokeCodeBlock(CodeBlock.of(BEAN_FACTORY_VARIABLE)));
|
builder.addStatement(initializer.toInvokeCodeBlock(CodeBlock.of(BEAN_FACTORY_VARIABLE)));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -141,8 +141,9 @@ class ApplicationContextAotGeneratorTests {
|
||||||
testCompiledResult(applicationContext, (initializer, compiled) -> {
|
testCompiledResult(applicationContext, (initializer, compiled) -> {
|
||||||
GenericApplicationContext freshApplicationContext = toFreshApplicationContext(initializer);
|
GenericApplicationContext freshApplicationContext = toFreshApplicationContext(initializer);
|
||||||
assertThat(freshApplicationContext.getBeanDefinitionNames()).isEmpty();
|
assertThat(freshApplicationContext.getBeanDefinitionNames()).isEmpty();
|
||||||
assertThat(compiled.getSourceFile()).contains(
|
assertThat(compiled.getSourceFile())
|
||||||
"beanFactory.setAutowireCandidateResolver(new ContextAnnotationAutowireCandidateResolver())");
|
.contains("beanFactory.setAutowireCandidateResolver(new ContextAnnotationAutowireCandidateResolver())")
|
||||||
|
.contains("beanFactory.setDependencyComparator(AnnotationAwareOrderComparator.INSTANCE)");
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue