From 2ecc51f06661fdf4846cad07a313bcb26dfa4b59 Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Thu, 30 May 2013 15:17:56 -0700 Subject: [PATCH] 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 --- .../context/annotation/ConfigurationClassUtils.java | 2 -- .../annotation/componentscan/simple/SimpleComponent.java | 6 ++++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassUtils.java b/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassUtils.java index d7bed91502..9a4a682771 100644 --- a/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassUtils.java +++ b/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassUtils.java @@ -27,7 +27,6 @@ import org.springframework.core.type.AnnotationMetadata; import org.springframework.core.type.StandardAnnotationMetadata; import org.springframework.core.type.classreading.MetadataReader; import org.springframework.core.type.classreading.MetadataReaderFactory; -import org.springframework.stereotype.Component; /** * Utilities for processing @{@link Configuration} classes. @@ -105,7 +104,6 @@ abstract class ConfigurationClassUtils { return false; // do not consider an interface or an annotation } return metadata.isAnnotated(Import.class.getName()) || - metadata.isAnnotated(Component.class.getName()) || metadata.hasAnnotatedMethods(Bean.class.getName()); } diff --git a/spring-context/src/test/java/org/springframework/context/annotation/componentscan/simple/SimpleComponent.java b/spring-context/src/test/java/org/springframework/context/annotation/componentscan/simple/SimpleComponent.java index 956b90d157..43e394b560 100644 --- a/spring-context/src/test/java/org/springframework/context/annotation/componentscan/simple/SimpleComponent.java +++ b/spring-context/src/test/java/org/springframework/context/annotation/componentscan/simple/SimpleComponent.java @@ -16,9 +16,15 @@ package org.springframework.context.annotation.componentscan.simple; +import org.springframework.context.annotation.Bean; import org.springframework.stereotype.Component; @Component public class SimpleComponent { + @Bean + public String exampleBean() { + return "example"; + } + } -- GitLab