Browse Source

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

pull/23217/head
Juergen Hoeller 17 years ago
parent
commit
433d52b728
  1. 18
      org.springframework.context/src/main/java/org/springframework/context/annotation/ConfigurationClass.java
  2. 4
      org.springframework.context/src/main/java/org/springframework/context/annotation/ConfigurationClassBeanDefinitionReader.java

18
org.springframework.context/src/main/java/org/springframework/context/annotation/ConfigurationClass.java

@ -129,6 +129,24 @@ final class ConfigurationClass { @@ -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 {

4
org.springframework.context/src/main/java/org/springframework/context/annotation/ConfigurationClassBeanDefinitionReader.java

@ -99,7 +99,7 @@ class ConfigurationClassBeanDefinitionReader { @@ -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 { @@ -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();

Loading…
Cancel
Save