@Import detects and accepts existing configuration class of the desired type

This commit is contained in:
Juergen Hoeller 2009-05-13 16:19:56 +00:00
parent 0a8a80ede3
commit 433d52b728
2 changed files with 20 additions and 2 deletions

View File

@ -129,6 +129,24 @@ final class ConfigurationClass {
}
@Override
public boolean equals(Object other) {
if (this == other) {
return true;
}
if (!(other instanceof ConfigurationClass)) {
return false;
}
ConfigurationClass otherCc = (ConfigurationClass) other;
return getMetadata().getClassName().equals(otherCc.getMetadata().getClassName());
}
@Override
public int hashCode() {
return getMetadata().getClassName().hashCode();
}
/** Configuration classes must be non-final to accommodate CGLIB subclassing. */
private class FinalConfigurationProblem extends Problem {

View File

@ -99,7 +99,7 @@ class ConfigurationClassBeanDefinitionReader {
if (configClass.getBeanName() == null) {
GenericBeanDefinition configBeanDef = new GenericBeanDefinition();
configBeanDef.setBeanClassName(configClass.getMetadata().getClassName());
String configBeanName = BeanDefinitionReaderUtils.registerWithGeneratedName(configBeanDef, registry);
String configBeanName = BeanDefinitionReaderUtils.registerWithGeneratedName(configBeanDef, this.registry);
configClass.setBeanName(configBeanName);
if (logger.isDebugEnabled()) {
logger.debug(String.format("Registered bean definition for imported @Configuration class %s", configBeanName));
@ -109,7 +109,7 @@ class ConfigurationClassBeanDefinitionReader {
/**
* Reads a particular {@link ConfigurationClassMethod}, registering bean definitions with
* {@link #registry} based on its contents.
* the BeanDefinitionRegistry based on its contents.
*/
private void loadBeanDefinitionsForModelMethod(ConfigurationClassMethod method) {
ConfigurationClass configClass = method.getDeclaringClass();