Do not consider all @Components as configuration
Update ConfigurationClassUtils to only consider beans with @Bean methods as 'lite' configuration candidates. Prior to this commit all @Component beans were considered 'lite' configuration candidates which could result in a large number of ConfigurationClass instance being created that would ultimately be ignored. Issue: SPR-10609
This commit is contained in:
parent
a8fd832818
commit
2ecc51f066
|
|
@ -27,7 +27,6 @@ import org.springframework.core.type.AnnotationMetadata;
|
||||||
import org.springframework.core.type.StandardAnnotationMetadata;
|
import org.springframework.core.type.StandardAnnotationMetadata;
|
||||||
import org.springframework.core.type.classreading.MetadataReader;
|
import org.springframework.core.type.classreading.MetadataReader;
|
||||||
import org.springframework.core.type.classreading.MetadataReaderFactory;
|
import org.springframework.core.type.classreading.MetadataReaderFactory;
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Utilities for processing @{@link Configuration} classes.
|
* Utilities for processing @{@link Configuration} classes.
|
||||||
|
|
@ -105,7 +104,6 @@ abstract class ConfigurationClassUtils {
|
||||||
return false; // do not consider an interface or an annotation
|
return false; // do not consider an interface or an annotation
|
||||||
}
|
}
|
||||||
return metadata.isAnnotated(Import.class.getName()) ||
|
return metadata.isAnnotated(Import.class.getName()) ||
|
||||||
metadata.isAnnotated(Component.class.getName()) ||
|
|
||||||
metadata.hasAnnotatedMethods(Bean.class.getName());
|
metadata.hasAnnotatedMethods(Bean.class.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,9 +16,15 @@
|
||||||
|
|
||||||
package org.springframework.context.annotation.componentscan.simple;
|
package org.springframework.context.annotation.componentscan.simple;
|
||||||
|
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
public class SimpleComponent {
|
public class SimpleComponent {
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public String exampleBean() {
|
||||||
|
return "example";
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue