|
|
@ -1666,6 +1666,36 @@ public class DefaultListableBeanFactoryTests { |
|
|
|
assertNull(lbf.getType("factoryBean")); |
|
|
|
assertNull(lbf.getType("factoryBean")); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
|
|
|
public void testGetBeanNamesForTypeBeforeFactoryBeanCreation() { |
|
|
|
|
|
|
|
DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); |
|
|
|
|
|
|
|
lbf.registerBeanDefinition("factoryBean", new RootBeanDefinition(FactoryBeanThatShouldntBeCalled.class.getName())); |
|
|
|
|
|
|
|
assertFalse(lbf.containsSingleton("factoryBean")); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String[] beanNames = lbf.getBeanNamesForType(Runnable.class, false, false); |
|
|
|
|
|
|
|
assertEquals(1, beanNames.length); |
|
|
|
|
|
|
|
assertEquals("&factoryBean", beanNames[0]); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
beanNames = lbf.getBeanNamesForType(FactoryBean.class, false, false); |
|
|
|
|
|
|
|
assertEquals(1, beanNames.length); |
|
|
|
|
|
|
|
assertEquals("&factoryBean", beanNames[0]); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
|
|
|
public void testGetBeanNamesForTypeAfterFactoryBeanCreation() { |
|
|
|
|
|
|
|
DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(); |
|
|
|
|
|
|
|
lbf.registerBeanDefinition("factoryBean", new RootBeanDefinition(FactoryBeanThatShouldntBeCalled.class.getName())); |
|
|
|
|
|
|
|
lbf.getBean("&factoryBean"); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String[] beanNames = lbf.getBeanNamesForType(Runnable.class, false, false); |
|
|
|
|
|
|
|
assertEquals(1, beanNames.length); |
|
|
|
|
|
|
|
assertEquals("&factoryBean", beanNames[0]); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
beanNames = lbf.getBeanNamesForType(FactoryBean.class, false, false); |
|
|
|
|
|
|
|
assertEquals(1, beanNames.length); |
|
|
|
|
|
|
|
assertEquals("&factoryBean", beanNames[0]); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* Verifies that a dependency on a {@link FactoryBean} can <strong>not</strong> |
|
|
|
* Verifies that a dependency on a {@link FactoryBean} can <strong>not</strong> |
|
|
|
* be autowired <em>by name</em>, as & is an illegal character in |
|
|
|
* be autowired <em>by name</em>, as & is an illegal character in |
|
|
@ -2862,7 +2892,7 @@ public class DefaultListableBeanFactoryTests { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static class FactoryBeanThatShouldntBeCalled implements FactoryBean<Object> { |
|
|
|
public static class FactoryBeanThatShouldntBeCalled implements FactoryBean<Object>, Runnable { |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public Object getObject() { |
|
|
|
public Object getObject() { |
|
|
@ -2878,6 +2908,11 @@ public class DefaultListableBeanFactoryTests { |
|
|
|
public boolean isSingleton() { |
|
|
|
public boolean isSingleton() { |
|
|
|
return false; |
|
|
|
return false; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
|
|
public void run() { |
|
|
|
|
|
|
|
throw new IllegalStateException(); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -2993,7 +3028,6 @@ public class DefaultListableBeanFactoryTests { |
|
|
|
|
|
|
|
|
|
|
|
private FactoryBean<?> factoryBean; |
|
|
|
private FactoryBean<?> factoryBean; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public final FactoryBean<?> getFactoryBean() { |
|
|
|
public final FactoryBean<?> getFactoryBean() { |
|
|
|
return this.factoryBean; |
|
|
|
return this.factoryBean; |
|
|
|
} |
|
|
|
} |
|
|
|