Refine instance supplier check in BeanDefinitionMethodGenerator

This commit refines the instance supplier check in
BeanDefinitionMethodGenerator constructor in order to allow
overriding by an AOT contribution.

Closes gh-29556
This commit is contained in:
Sébastien Deleuze
2023-02-15 09:31:50 +01:00
parent 9a4df5a97d
commit ac521a366a
2 changed files with 20 additions and 3 deletions

View File

@@ -78,7 +78,7 @@ class BeanDefinitionMethodGenerator {
List<BeanRegistrationAotContribution> aotContributions) {
RootBeanDefinition mbd = registeredBean.getMergedBeanDefinition();
if (mbd.getInstanceSupplier() != null) {
if (mbd.getInstanceSupplier() != null && aotContributions.isEmpty()) {
throw new IllegalArgumentException("Code generation is not supported for bean definitions declaring an instance supplier callback : " + mbd);
}
this.methodGeneratorFactory = methodGeneratorFactory;