|
|
|
@ -211,7 +211,7 @@ class ConfigurationClassBeanDefinitionReader { |
|
|
|
return; |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
ConfigurationClassBeanDefinition beanDef = new ConfigurationClassBeanDefinition(configClass, metadata); |
|
|
|
ConfigurationClassBeanDefinition beanDef = new ConfigurationClassBeanDefinition(configClass, metadata, beanName); |
|
|
|
beanDef.setSource(this.sourceExtractor.extractSource(metadata, configClass.getResource())); |
|
|
|
beanDef.setSource(this.sourceExtractor.extractSource(metadata, configClass.getResource())); |
|
|
|
|
|
|
|
|
|
|
|
if (metadata.isStatic()) { |
|
|
|
if (metadata.isStatic()) { |
|
|
|
@ -276,7 +276,7 @@ class ConfigurationClassBeanDefinitionReader { |
|
|
|
new BeanDefinitionHolder(beanDef, beanName), this.registry, |
|
|
|
new BeanDefinitionHolder(beanDef, beanName), this.registry, |
|
|
|
proxyMode == ScopedProxyMode.TARGET_CLASS); |
|
|
|
proxyMode == ScopedProxyMode.TARGET_CLASS); |
|
|
|
beanDefToRegister = new ConfigurationClassBeanDefinition( |
|
|
|
beanDefToRegister = new ConfigurationClassBeanDefinition( |
|
|
|
(RootBeanDefinition) proxyDef.getBeanDefinition(), configClass, metadata); |
|
|
|
(RootBeanDefinition) proxyDef.getBeanDefinition(), configClass, metadata, beanName); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (logger.isTraceEnabled()) { |
|
|
|
if (logger.isTraceEnabled()) { |
|
|
|
@ -398,24 +398,31 @@ class ConfigurationClassBeanDefinitionReader { |
|
|
|
|
|
|
|
|
|
|
|
private final MethodMetadata factoryMethodMetadata; |
|
|
|
private final MethodMetadata factoryMethodMetadata; |
|
|
|
|
|
|
|
|
|
|
|
public ConfigurationClassBeanDefinition(ConfigurationClass configClass, MethodMetadata beanMethodMetadata) { |
|
|
|
private final String derivedBeanName; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public ConfigurationClassBeanDefinition( |
|
|
|
|
|
|
|
ConfigurationClass configClass, MethodMetadata beanMethodMetadata, String derivedBeanName) { |
|
|
|
|
|
|
|
|
|
|
|
this.annotationMetadata = configClass.getMetadata(); |
|
|
|
this.annotationMetadata = configClass.getMetadata(); |
|
|
|
this.factoryMethodMetadata = beanMethodMetadata; |
|
|
|
this.factoryMethodMetadata = beanMethodMetadata; |
|
|
|
|
|
|
|
this.derivedBeanName = derivedBeanName; |
|
|
|
setResource(configClass.getResource()); |
|
|
|
setResource(configClass.getResource()); |
|
|
|
setLenientConstructorResolution(false); |
|
|
|
setLenientConstructorResolution(false); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public ConfigurationClassBeanDefinition( |
|
|
|
public ConfigurationClassBeanDefinition(RootBeanDefinition original, |
|
|
|
RootBeanDefinition original, ConfigurationClass configClass, MethodMetadata beanMethodMetadata) { |
|
|
|
ConfigurationClass configClass, MethodMetadata beanMethodMetadata, String derivedBeanName) { |
|
|
|
super(original); |
|
|
|
super(original); |
|
|
|
this.annotationMetadata = configClass.getMetadata(); |
|
|
|
this.annotationMetadata = configClass.getMetadata(); |
|
|
|
this.factoryMethodMetadata = beanMethodMetadata; |
|
|
|
this.factoryMethodMetadata = beanMethodMetadata; |
|
|
|
|
|
|
|
this.derivedBeanName = derivedBeanName; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private ConfigurationClassBeanDefinition(ConfigurationClassBeanDefinition original) { |
|
|
|
private ConfigurationClassBeanDefinition(ConfigurationClassBeanDefinition original) { |
|
|
|
super(original); |
|
|
|
super(original); |
|
|
|
this.annotationMetadata = original.annotationMetadata; |
|
|
|
this.annotationMetadata = original.annotationMetadata; |
|
|
|
this.factoryMethodMetadata = original.factoryMethodMetadata; |
|
|
|
this.factoryMethodMetadata = original.factoryMethodMetadata; |
|
|
|
|
|
|
|
this.derivedBeanName = original.derivedBeanName; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
@ -431,7 +438,8 @@ class ConfigurationClassBeanDefinitionReader { |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public boolean isFactoryMethod(Method candidate) { |
|
|
|
public boolean isFactoryMethod(Method candidate) { |
|
|
|
return (super.isFactoryMethod(candidate) && BeanAnnotationHelper.isBeanAnnotated(candidate)); |
|
|
|
return (super.isFactoryMethod(candidate) && BeanAnnotationHelper.isBeanAnnotated(candidate) && |
|
|
|
|
|
|
|
BeanAnnotationHelper.determineBeanNameFor(candidate).equals(this.derivedBeanName)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
|