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");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with 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 (!containsBeanDefinition(beanName)) {
|
||||||
if (containsSingleton(beanName)) {
|
if (containsSingleton(beanName)) {
|
||||||
return true;
|
return isAutowireCandidate(beanName, new RootBeanDefinition(getType(beanName)), descriptor);
|
||||||
}
|
}
|
||||||
else if (getParentBeanFactory() instanceof ConfigurableListableBeanFactory) {
|
else if (getParentBeanFactory() instanceof ConfigurableListableBeanFactory) {
|
||||||
// No bean definition found in this factory -> delegate to parent.
|
// No bean definition found in this factory -> delegate to parent.
|
||||||
return ((ConfigurableListableBeanFactory) getParentBeanFactory()).isAutowireCandidate(beanName, descriptor);
|
return ((ConfigurableListableBeanFactory) getParentBeanFactory()).isAutowireCandidate(beanName, descriptor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return isAutowireCandidate(beanName, getMergedLocalBeanDefinition(beanName), descriptor);
|
return isAutowireCandidate(beanName, getMergedLocalBeanDefinition(beanName), descriptor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -41,4 +41,6 @@
|
||||||
</qualifier>
|
</qualifier>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
|
<bean id="testProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean"/>
|
||||||
|
|
||||||
</beans>
|
</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");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with 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.Retention;
|
||||||
import java.lang.annotation.RetentionPolicy;
|
import java.lang.annotation.RetentionPolicy;
|
||||||
import java.lang.annotation.Target;
|
import java.lang.annotation.Target;
|
||||||
|
import java.util.Properties;
|
||||||
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.springframework.beans.factory.BeanCreationException;
|
import org.springframework.beans.factory.BeanCreationException;
|
||||||
|
|
@ -82,6 +83,7 @@ public final class QualifierAnnotationTests {
|
||||||
QualifiedByBeanNameTestBean testBean = (QualifiedByBeanNameTestBean) context.getBean("testBean");
|
QualifiedByBeanNameTestBean testBean = (QualifiedByBeanNameTestBean) context.getBean("testBean");
|
||||||
Person person = testBean.getLarry();
|
Person person = testBean.getLarry();
|
||||||
assertEquals("LarryBean", person.getName());
|
assertEquals("LarryBean", person.getName());
|
||||||
|
assertTrue(testBean.myProps != null && testBean.myProps.isEmpty());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -192,6 +194,9 @@ public final class QualifierAnnotationTests {
|
||||||
@Autowired @Qualifier("larryBean")
|
@Autowired @Qualifier("larryBean")
|
||||||
private Person larry;
|
private Person larry;
|
||||||
|
|
||||||
|
@Autowired @Qualifier("testProperties")
|
||||||
|
public Properties myProps;
|
||||||
|
|
||||||
public Person getLarry() {
|
public Person getLarry() {
|
||||||
return larry;
|
return larry;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue