Example usage for org.springframework.beans.factory.support DefaultListableBeanFactory getBeansOfType

List of usage examples for org.springframework.beans.factory.support DefaultListableBeanFactory getBeansOfType

Introduction

In this page you can find the example usage for org.springframework.beans.factory.support DefaultListableBeanFactory getBeansOfType.

Prototype

@Override
    @SuppressWarnings("unchecked")
    public <T> Map<String, T> getBeansOfType(@Nullable Class<T> type, boolean includeNonSingletons,
            boolean allowEagerInit) throws BeansException 

Source Link

Usage

From source file:org.springframework.beans.factory.DefaultListableBeanFactoryTests.java

@Test
public void testRegisterExistingSingletonWithReference() {
    DefaultListableBeanFactory lbf = new DefaultListableBeanFactory();
    Properties p = new Properties();
    p.setProperty("test.(class)", TestBean.class.getName());
    p.setProperty("test.name", "Tony");
    p.setProperty("test.age", "48");
    p.setProperty("test.spouse(ref)", "singletonObject");
    (new PropertiesBeanDefinitionReader(lbf)).registerBeanDefinitions(p);
    Object singletonObject = new TestBean();
    lbf.registerSingleton("singletonObject", singletonObject);

    assertTrue(lbf.isSingleton("singletonObject"));
    assertEquals(TestBean.class, lbf.getType("singletonObject"));
    TestBean test = (TestBean) lbf.getBean("test");
    assertEquals(singletonObject, lbf.getBean("singletonObject"));
    assertEquals(singletonObject, test.getSpouse());

    Map<?, ?> beansOfType = lbf.getBeansOfType(TestBean.class, false, true);
    assertEquals(2, beansOfType.size());
    assertTrue(beansOfType.containsValue(test));
    assertTrue(beansOfType.containsValue(singletonObject));

    beansOfType = lbf.getBeansOfType(null, false, true);
    assertEquals(2, beansOfType.size());

    Iterator<String> beanNames = lbf.getBeanNamesIterator();
    assertEquals("test", beanNames.next());
    assertEquals("singletonObject", beanNames.next());
    assertFalse(beanNames.hasNext());// w ww .  j  a  v  a 2s . co m

    assertTrue(lbf.containsSingleton("test"));
    assertTrue(lbf.containsSingleton("singletonObject"));
    assertTrue(lbf.containsBeanDefinition("test"));
    assertFalse(lbf.containsBeanDefinition("singletonObject"));
}

From source file:org.springframework.beans.factory.DefaultListableBeanFactoryTests.java

@Test
public void testRegisterExistingSingletonWithNameOverriding() {
    DefaultListableBeanFactory lbf = new DefaultListableBeanFactory();
    Properties p = new Properties();
    p.setProperty("test.(class)", TestBean.class.getName());
    p.setProperty("test.name", "Tony");
    p.setProperty("test.age", "48");
    p.setProperty("test.spouse(ref)", "singletonObject");
    (new PropertiesBeanDefinitionReader(lbf)).registerBeanDefinitions(p);
    lbf.registerBeanDefinition("singletonObject", new RootBeanDefinition(PropertiesFactoryBean.class));
    Object singletonObject = new TestBean();
    lbf.registerSingleton("singletonObject", singletonObject);
    lbf.preInstantiateSingletons();/*w  w w.j  a va 2 s.  c  o  m*/

    assertTrue(lbf.isSingleton("singletonObject"));
    assertEquals(TestBean.class, lbf.getType("singletonObject"));
    TestBean test = (TestBean) lbf.getBean("test");
    assertEquals(singletonObject, lbf.getBean("singletonObject"));
    assertEquals(singletonObject, test.getSpouse());

    Map<?, ?> beansOfType = lbf.getBeansOfType(TestBean.class, false, true);
    assertEquals(2, beansOfType.size());
    assertTrue(beansOfType.containsValue(test));
    assertTrue(beansOfType.containsValue(singletonObject));

    beansOfType = lbf.getBeansOfType(null, false, true);

    Iterator<String> beanNames = lbf.getBeanNamesIterator();
    assertEquals("test", beanNames.next());
    assertEquals("singletonObject", beanNames.next());
    assertFalse(beanNames.hasNext());
    assertEquals(2, beansOfType.size());

    assertTrue(lbf.containsSingleton("test"));
    assertTrue(lbf.containsSingleton("singletonObject"));
    assertTrue(lbf.containsBeanDefinition("test"));
    assertTrue(lbf.containsBeanDefinition("singletonObject"));
}

From source file:org.springframework.beans.factory.xml.XmlBeanFactoryTests.java

@Test
public void testDependenciesMaterializeThis() throws Exception {
    DefaultListableBeanFactory xbf = new DefaultListableBeanFactory();
    new XmlBeanDefinitionReader(xbf).loadBeanDefinitions(DEP_MATERIALIZE_CONTEXT);

    assertEquals(2, xbf.getBeansOfType(DummyBo.class, true, false).size());
    assertEquals(3, xbf.getBeansOfType(DummyBo.class, true, true).size());
    assertEquals(3, xbf.getBeansOfType(DummyBo.class, true, false).size());
    assertEquals(3, xbf.getBeansOfType(DummyBo.class).size());
    assertEquals(2, xbf.getBeansOfType(DummyBoImpl.class, true, true).size());
    assertEquals(1, xbf.getBeansOfType(DummyBoImpl.class, false, true).size());
    assertEquals(2, xbf.getBeansOfType(DummyBoImpl.class).size());

    DummyBoImpl bos = (DummyBoImpl) xbf.getBean("boSingleton");
    DummyBoImpl bop = (DummyBoImpl) xbf.getBean("boPrototype");
    assertNotSame(bos, bop);/* w  w  w . j a va 2 s .  c  om*/
    assertTrue(bos.dao == bop.dao);
}

From source file:org.springframework.beans.factory.xml.XmlBeanFactoryTests.java

private void doTestDependencies(ClassPathResource resource, int nrOfHoldingBeans) {
    PreparingBean1.prepared = false;//from   w  ww  . j  a  v a 2s.  c o  m
    PreparingBean1.destroyed = false;
    PreparingBean2.prepared = false;
    PreparingBean2.destroyed = false;
    DependingBean.destroyCount = 0;
    HoldingBean.destroyCount = 0;
    DefaultListableBeanFactory xbf = new DefaultListableBeanFactory();
    new XmlBeanDefinitionReader(xbf).loadBeanDefinitions(resource);
    xbf.preInstantiateSingletons();
    xbf.destroySingletons();
    assertTrue(PreparingBean1.prepared);
    assertTrue(PreparingBean1.destroyed);
    assertTrue(PreparingBean2.prepared);
    assertTrue(PreparingBean2.destroyed);
    assertEquals(nrOfHoldingBeans, DependingBean.destroyCount);
    if (!xbf.getBeansOfType(HoldingBean.class, false, false).isEmpty()) {
        assertEquals(nrOfHoldingBeans, HoldingBean.destroyCount);
    }
}

From source file:org.springframework.jdbc.support.SQLErrorCodesFactory.java

/**
 * Create a new instance of the {@link SQLErrorCodesFactory} class.
 * <p>Not public to enforce Singleton design pattern. Would be private
 * except to allow testing via overriding the
 * {@link #loadResource(String)} method.
 * <p><b>Do not subclass in application code.</b>
 * @see #loadResource(String)//from   ww  w. ja  va  2 s .co  m
 */
protected SQLErrorCodesFactory() {
    Map<String, SQLErrorCodes> errorCodes;

    try {
        DefaultListableBeanFactory lbf = new DefaultListableBeanFactory();
        lbf.setBeanClassLoader(getClass().getClassLoader());
        XmlBeanDefinitionReader bdr = new XmlBeanDefinitionReader(lbf);

        // Load default SQL error codes.
        Resource resource = loadResource(SQL_ERROR_CODE_DEFAULT_PATH);
        if (resource != null && resource.exists()) {
            bdr.loadBeanDefinitions(resource);
        } else {
            logger.warn("Default sql-error-codes.xml not found (should be included in spring.jar)");
        }

        // Load custom SQL error codes, overriding defaults.
        resource = loadResource(SQL_ERROR_CODE_OVERRIDE_PATH);
        if (resource != null && resource.exists()) {
            bdr.loadBeanDefinitions(resource);
            logger.info("Found custom sql-error-codes.xml file at the root of the classpath");
        }

        // Check all beans of type SQLErrorCodes.
        errorCodes = lbf.getBeansOfType(SQLErrorCodes.class, true, false);
        if (logger.isInfoEnabled()) {
            logger.info("SQLErrorCodes loaded: " + errorCodes.keySet());
        }
    } catch (BeansException ex) {
        logger.warn("Error loading SQL error codes from config file", ex);
        errorCodes = Collections.emptyMap();
    }

    this.errorCodesMap = errorCodes;
}