registered plain singletons will be fully matched according to their qualifiers; "systemProperties" bean is not considered a default match for type Properties anymore (SPR-5355)
This commit is contained in:
parent
6086bb37e7
commit
5a04ed502b
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2008 the original author or authors.
|
||||
* Copyright 2002-2009 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
|
@ -393,14 +393,13 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto
|
|||
|
||||
if (!containsBeanDefinition(beanName)) {
|
||||
if (containsSingleton(beanName)) {
|
||||
return true;
|
||||
return isAutowireCandidate(beanName, new RootBeanDefinition(getType(beanName)), descriptor);
|
||||
}
|
||||
else if (getParentBeanFactory() instanceof ConfigurableListableBeanFactory) {
|
||||
// No bean definition found in this factory -> delegate to parent.
|
||||
return ((ConfigurableListableBeanFactory) getParentBeanFactory()).isAutowireCandidate(beanName, descriptor);
|
||||
}
|
||||
}
|
||||
|
||||
return isAutowireCandidate(beanName, getMergedLocalBeanDefinition(beanName), descriptor);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -41,4 +41,6 @@
|
|||
</qualifier>
|
||||
</bean>
|
||||
|
||||
</beans>
|
||||
<bean id="testProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean"/>
|
||||
|
||||
</beans>
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2008 the original author or authors.
|
||||
* Copyright 2002-2009 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
|
@ -24,6 +24,7 @@ import java.lang.annotation.ElementType;
|
|||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
import java.util.Properties;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.springframework.beans.factory.BeanCreationException;
|
||||
|
|
@ -82,6 +83,7 @@ public final class QualifierAnnotationTests {
|
|||
QualifiedByBeanNameTestBean testBean = (QualifiedByBeanNameTestBean) context.getBean("testBean");
|
||||
Person person = testBean.getLarry();
|
||||
assertEquals("LarryBean", person.getName());
|
||||
assertTrue(testBean.myProps != null && testBean.myProps.isEmpty());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -192,6 +194,9 @@ public final class QualifierAnnotationTests {
|
|||
@Autowired @Qualifier("larryBean")
|
||||
private Person larry;
|
||||
|
||||
@Autowired @Qualifier("testProperties")
|
||||
public Properties myProps;
|
||||
|
||||
public Person getLarry() {
|
||||
return larry;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue