getBean(Class<?>) now filters out bean definitions for which isAutowireCandidate() is false (SPR-7120)

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3287 50f2f4bb-b051-0410-bef5-90022cba6387
This commit is contained in:
Chris Beams
2010-04-22 16:34:36 +00:00
parent 75c9ff2662
commit 116848fb6d
2 changed files with 43 additions and 0 deletions
@@ -248,6 +248,17 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto
public <T> T getBean(Class<T> requiredType) throws BeansException {
Assert.notNull(requiredType, "Required type must not be null");
String[] beanNames = getBeanNamesForType(requiredType);
if (beanNames.length > 1) {
ArrayList<String> autowireCandidates = new ArrayList<String>();
for (String beanName : beanNames) {
if (getBeanDefinition(beanName).isAutowireCandidate()) {
autowireCandidates.add(beanName);
}
}
if (autowireCandidates.size() > 0) {
beanNames = autowireCandidates.toArray(new String[autowireCandidates.size()]);
}
}
if (beanNames.length == 1) {
return getBean(beanNames[0], requiredType);
}