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

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

Introduction

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

Prototype

@Override
    public void registerBeanDefinition(String beanName, BeanDefinition beanDefinition)
            throws BeanDefinitionStoreException 

Source Link

Usage

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

@SuppressWarnings("unchecked")
@Test/*from w  ww  .ja va 2  s .  com*/
public void testInitSecurityAwarePrototypeBean() {
    final DefaultListableBeanFactory lbf = new DefaultListableBeanFactory();
    RootBeanDefinition bd = new RootBeanDefinition(TestSecuredBean.class);
    bd.setScope(ConfigurableBeanFactory.SCOPE_PROTOTYPE);
    bd.setInitMethodName("init");
    lbf.registerBeanDefinition("test", bd);
    final Subject subject = new Subject();
    subject.getPrincipals().add(new TestPrincipal("user1"));

    TestSecuredBean bean = (TestSecuredBean) Subject.doAsPrivileged(subject, new PrivilegedAction() {
        @Override
        public Object run() {
            return lbf.getBean("test");
        }
    }, null);
    assertNotNull(bean);
    assertEquals("user1", bean.getUserName());
}

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

@Test
public void testContainsBeanReturnsTrueEvenForAbstractBeanDefinition() {
    DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
    bf.registerBeanDefinition("abs",
            BeanDefinitionBuilder.rootBeanDefinition(TestBean.class).setAbstract(true).getBeanDefinition());
    assertThat(bf.containsBean("abs"), equalTo(true));
    assertThat(bf.containsBean("bogus"), equalTo(false));
}

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

@Test
public void populatedJavaUtilOptionalBean() {
    DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
    RootBeanDefinition bd = new RootBeanDefinition(Optional.class);
    bd.setFactoryMethodName("of");
    bd.getConstructorArgumentValues().addGenericArgumentValue("CONTENT");
    bf.registerBeanDefinition("optionalBean", bd);
    assertEquals(Optional.of("CONTENT"), bf.getBean(Optional.class));
}

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

@Test
public void emptyJavaUtilOptionalBean() {
    DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
    RootBeanDefinition bd = new RootBeanDefinition(Optional.class);
    bd.setFactoryMethodName("empty");
    bf.registerBeanDefinition("optionalBean", bd);
    assertSame(Optional.empty(), bf.getBean(Optional.class));
}

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

@Test
public void testNonPublicEnum() {
    DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
    RootBeanDefinition bd = new RootBeanDefinition(NonPublicEnumHolder.class);
    bd.getConstructorArgumentValues().addGenericArgumentValue("VALUE_1");
    bf.registerBeanDefinition("holderBean", bd);
    NonPublicEnumHolder holder = (NonPublicEnumHolder) bf.getBean("holderBean");
    assertEquals(NonPublicEnum.VALUE_1, holder.getNonPublicEnum());
}

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

/**
 * Test that by-type bean lookup caching is working effectively by searching for a
 * bean of type B 10K times within a container having 1K additional beans of type A.
 * Prior to by-type caching, each bean lookup would traverse the entire container
 * (all 1001 beans), performing expensive assignability checks, etc. Now these
 * operations are necessary only once, providing a dramatic performance improvement.
 * On load-free modern hardware (e.g. an 8-core MPB), this method should complete well
 * under the 1000 ms timeout, usually ~= 300ms. With caching removed and on the same
 * hardware the method will take ~13000 ms. See SPR-6870.
 *//*  w ww .  j a  v a2  s.  c  o m*/
@Test(timeout = 1000)
public void testByTypeLookupIsFastEnough() {
    Assume.group(TestGroup.PERFORMANCE);
    DefaultListableBeanFactory bf = new DefaultListableBeanFactory();

    for (int i = 0; i < 1000; i++) {
        bf.registerBeanDefinition("a" + i, new RootBeanDefinition(A.class));
    }
    bf.registerBeanDefinition("b", new RootBeanDefinition(B.class));

    bf.freezeConfiguration();

    for (int i = 0; i < 10000; i++) {
        bf.getBean(B.class);
    }
}

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

@Test(timeout = 1000)
public void testRegistrationOfManyBeanDefinitionsIsFastEnough() {
    Assume.group(TestGroup.PERFORMANCE);
    DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
    bf.registerBeanDefinition("b", new RootBeanDefinition(B.class));
    // bf.getBean("b");

    for (int i = 0; i < 100000; i++) {
        bf.registerBeanDefinition("a" + i, new RootBeanDefinition(A.class));
    }// www .j  av a 2s .c o  m
}

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

@Test(timeout = 1000)
public void testRegistrationOfManySingletonsIsFastEnough() {
    Assume.group(TestGroup.PERFORMANCE);
    DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
    bf.registerBeanDefinition("b", new RootBeanDefinition(B.class));
    // bf.getBean("b");

    for (int i = 0; i < 100000; i++) {
        bf.registerSingleton("a" + i, new A());
    }/* w w  w  .j av  a  2  s .c  o  m*/
}

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

@Test
public void testAutowireWithParent() throws Exception {
    DefaultListableBeanFactory xbf = new DefaultListableBeanFactory();
    new XmlBeanDefinitionReader(xbf).loadBeanDefinitions(AUTOWIRE_CONTEXT);
    DefaultListableBeanFactory lbf = new DefaultListableBeanFactory();
    MutablePropertyValues pvs = new MutablePropertyValues();
    pvs.add("name", "kerry");
    RootBeanDefinition bd = new RootBeanDefinition(TestBean.class);
    bd.setPropertyValues(pvs);//from  w  ww .  j a v  a  2  s  .  co m
    lbf.registerBeanDefinition("spouse", bd);
    xbf.setParentBeanFactory(lbf);
    doTestAutowire(xbf);
}

From source file:org.springframework.context.annotation.Spr3775InitDestroyLifecycleTests.java

private DefaultListableBeanFactory createBeanFactoryAndRegisterBean(final Class<?> beanClass,
        final String initMethodName, final String destroyMethodName) {
    DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
    RootBeanDefinition beanDefinition = new RootBeanDefinition(beanClass);
    beanDefinition.setInitMethodName(initMethodName);
    beanDefinition.setDestroyMethodName(destroyMethodName);
    beanFactory.addBeanPostProcessor(new CommonAnnotationBeanPostProcessor());
    beanFactory.registerBeanDefinition(LIFECYCLE_TEST_BEAN, beanDefinition);
    return beanFactory;
}