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

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

Introduction

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

Prototype

@SuppressWarnings("unchecked")
    @Override
    public <T> T getBean(Class<T> requiredType, @Nullable Object... args) throws BeansException 

Source Link

Usage

From source file:com.home.ln_spring.ch4.XmlConfigWithBeanFactory.java

public static void main(String args[]) {

    DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
    XmlBeanDefinitionReader rdr = new XmlBeanDefinitionReader(factory);
    rdr.loadBeanDefinitions(new FileSystemResource("src/main/resources/xmlBeanFactory.xml"));

    Oracle oracle = factory.getBean("oracle", Oracle.class);
    System.out.println(oracle.defineMeaningOfLife());
}

From source file:org.brushingbits.jnap.persistence.factory.DaoFactoryPostProcessor.java

public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException {
    Assert.isAssignable(DefaultListableBeanFactory.class, registry.getClass(),
            "The DaoFactoryPostProcessor only works within a DefaultListableBeanFactory capable"
                    + "BeanFactory, your BeanDefinitionRegistry is " + registry.getClass());
    final DefaultListableBeanFactory beanFactory = (DefaultListableBeanFactory) registry;

    // get already defined beans of type Dao
    final Set<Class<? extends PersistentModel>> alreadyDefinedDaos = new HashSet<Class<? extends PersistentModel>>();
    for (String beanName : beanFactory.getBeanNamesForType(Dao.class, true, false)) {
        Dao<? extends PersistentModel> dao = beanFactory.getBean(beanName, Dao.class);
        alreadyDefinedDaos.add(dao.getEntityClass());
    }//from  w ww  .j  av a2s  .  co m

    for (String sessionFactoryName : beanFactory.getBeanNamesForType(SessionFactory.class)) {
        final SessionFactory sessionFactory = beanFactory.getBean(sessionFactoryName, SessionFactory.class);
        Map<String, ClassMetadata> entitiesMetadata = sessionFactory.getAllClassMetadata();
        for (ClassMetadata entityMetadata : entitiesMetadata.values()) {
            Class<? extends PersistentModel> entityClass = entityMetadata.getMappedClass(EntityMode.POJO);
            if (entityClass != null && !alreadyDefinedDaos.contains(entityClass)) {
                String daoName = entityClass.getSimpleName() + "Dao";
                daoName = Character.toLowerCase(daoName.charAt(0)) + daoName.substring(1);
                beanFactory.registerBeanDefinition(daoName, createDaoDefinition(entityClass, sessionFactory));
            }
        }
    }
}

From source file:com.longio.spring.LongioBeanFactoryPostProcessor.java

private Object getConnector(DefaultListableBeanFactory bf) {
    if (!bf.containsBeanDefinition("longio.connector")) {
        GenericBeanDefinition bdd = new GenericBeanDefinition();
        bdd.setBeanClass(NettyConnector.class);
        bf.registerBeanDefinition("longio.connector", bdd);
    }//from   w  w w  .ja  va2  s .c o  m

    if (bf.containsBeanDefinition("longio.connector")) {

        Connector connector = (Connector) bf.getBean("longio.connector", Connector.class);

        return connector;
    }
    return null;
}

From source file:org.jnap.core.persistence.factory.DaoFactoryBkp.java

public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException {
    Assert.isAssignable(DefaultListableBeanFactory.class, registry.getClass(),
            "The DaoFactory only works within a DefaultListableBeanFactory capable"
                    + "BeanFactory, your BeanDefinitionRegistry is " + registry.getClass());
    final DefaultListableBeanFactory beanFactory = (DefaultListableBeanFactory) registry;

    // Initialize all SessionFactory beans
    String[] factoryNames = beanFactory.getBeanNamesForType(EntityManagerFactory.class);
    Set<EntityManagerFactory> factories = new HashSet<EntityManagerFactory>(factoryNames.length);
    for (String factoryName : factoryNames) {
        factories.add(beanFactory.getBean(factoryName, EntityManagerFactory.class));
    }//w  w w  .j a  v a 2 s.c  om

    for (EntityManagerFactory factory : factories) {
        factory.getMetamodel().getEntities();
        for (EntityType<?> entityMetadata : factory.getMetamodel().getEntities()) {
            Class<? extends PersistentModel> entityClass = (Class<? extends PersistentModel>) entityMetadata
                    .getJavaType();
            if (entityClass != null && !isDaoDefinedForEntity(beanFactory, entityClass)) {
                String daoName = buildDaoName(entityClass);
                beanFactory.registerBeanDefinition(daoName, createDaoDefinition(entityClass, factory));
                daoNameCache.put(entityClass, daoName);
            }
        }
    }

    factories.clear();
    factories = null;
}

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

@Test
public void testSimpleReference() {
    String PREFIX = "beans.";
    DefaultListableBeanFactory lbf = new DefaultListableBeanFactory();
    Properties p = new Properties();

    p.setProperty(PREFIX + "rod.(class)", TestBean.class.getName());
    p.setProperty(PREFIX + "rod.name", "Rod");

    p.setProperty(PREFIX + "kerry.(class)", TestBean.class.getName());
    p.setProperty(PREFIX + "kerry.name", "Kerry");
    p.setProperty(PREFIX + "kerry.age", "35");
    p.setProperty(PREFIX + "kerry.spouse(ref)", "rod");

    int count = (new PropertiesBeanDefinitionReader(lbf)).registerBeanDefinitions(p, PREFIX);
    assertTrue("2 beans registered, not " + count, count == 2);

    TestBean kerry = lbf.getBean("kerry", TestBean.class);
    assertTrue("Kerry name is Kerry", "Kerry".equals(kerry.getName()));
    ITestBean spouse = kerry.getSpouse();
    assertTrue("Kerry spouse is non null", spouse != null);
    assertTrue("Kerry spouse name is Rod", "Rod".equals(spouse.getName()));
}

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

@Test
public void testPropertiesWithDotsInKey() {
    DefaultListableBeanFactory lbf = new DefaultListableBeanFactory();
    Properties p = new Properties();

    p.setProperty("tb.(class)", TestBean.class.getName());
    p.setProperty("tb.someMap[my.key]", "my.value");

    int count = (new PropertiesBeanDefinitionReader(lbf)).registerBeanDefinitions(p);
    assertTrue("1 beans registered, not " + count, count == 1);
    assertEquals(1, lbf.getBeanDefinitionCount());

    TestBean tb = lbf.getBean("tb", TestBean.class);
    assertEquals("my.value", tb.getSomeMap().get("my.key"));
}

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

@Test(expected = NoSuchBeanDefinitionException.class)
public void testGetBeanByTypeInstanceWithNoneFound() {
    DefaultListableBeanFactory lbf = new DefaultListableBeanFactory();
    lbf.getBean(ConstructorDependency.class, 42);
}

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

@Test
public void testGetBeanByTypeInstanceDefinedInParent() {
    DefaultListableBeanFactory parent = new DefaultListableBeanFactory();
    RootBeanDefinition bd1 = createConstructorDependencyBeanDefinition(99);
    parent.registerBeanDefinition("bd1", bd1);
    DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(parent);
    ConstructorDependency bean = lbf.getBean(ConstructorDependency.class, 42);
    assertThat(bean.beanName, equalTo("bd1"));
    assertThat(bean.spouseAge, equalTo(42));
}

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

@Test
public void testGetBeanByTypeInstanceWithAmbiguity() {
    DefaultListableBeanFactory lbf = new DefaultListableBeanFactory();
    RootBeanDefinition bd1 = createConstructorDependencyBeanDefinition(99);
    RootBeanDefinition bd2 = new RootBeanDefinition(ConstructorDependency.class);
    bd2.setScope(RootBeanDefinition.SCOPE_PROTOTYPE);
    bd2.getConstructorArgumentValues().addGenericArgumentValue("43");

    lbf.registerBeanDefinition("bd1", bd1);
    lbf.registerBeanDefinition("bd2", bd2);

    thrown.expect(NoUniqueBeanDefinitionException.class);
    lbf.getBean(ConstructorDependency.class, 42);
}

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

@Test
public void testGetBeanByTypeInstanceWithPrimary() {
    DefaultListableBeanFactory lbf = new DefaultListableBeanFactory();
    RootBeanDefinition bd1 = createConstructorDependencyBeanDefinition(99);
    RootBeanDefinition bd2 = createConstructorDependencyBeanDefinition(43);
    bd2.setPrimary(true);//from w  w w  .  j  a v  a  2 s.  c o m
    lbf.registerBeanDefinition("bd1", bd1);
    lbf.registerBeanDefinition("bd2", bd2);
    ConstructorDependency bean = lbf.getBean(ConstructorDependency.class, 42);
    assertThat(bean.beanName, equalTo("bd2"));
    assertThat(bean.spouseAge, equalTo(42));
}