Example usage for org.springframework.beans.factory.support RootBeanDefinition RootBeanDefinition

List of usage examples for org.springframework.beans.factory.support RootBeanDefinition RootBeanDefinition

Introduction

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

Prototype

RootBeanDefinition(BeanDefinition original) 

Source Link

Document

Create a new RootBeanDefinition as deep copy of the given bean definition.

Usage

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

@Test
public void testAutowireBeanByNameWithNoDependencyCheck() {
    DefaultListableBeanFactory lbf = new DefaultListableBeanFactory();
    RootBeanDefinition bd = new RootBeanDefinition(TestBean.class);
    lbf.registerBeanDefinition("spous", bd);
    DependenciesBean bean = (DependenciesBean) lbf.autowire(DependenciesBean.class,
            AutowireCapableBeanFactory.AUTOWIRE_BY_NAME, false);
    assertNull(bean.getSpouse());/*w w  w  . j  a  va 2  s  .c  o m*/
}

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

@Test
public void testDependsOnCycle() {
    DefaultListableBeanFactory lbf = new DefaultListableBeanFactory();
    RootBeanDefinition bd1 = new RootBeanDefinition(TestBean.class);
    bd1.setDependsOn("tb2");
    lbf.registerBeanDefinition("tb1", bd1);
    RootBeanDefinition bd2 = new RootBeanDefinition(TestBean.class);
    bd2.setDependsOn("tb1");
    lbf.registerBeanDefinition("tb2", bd2);
    try {/*from   w  w w  .  j  a  va  2s . co m*/
        lbf.preInstantiateSingletons();
        fail("Should have thrown BeanCreationException");
    } catch (BeanCreationException ex) {
        // expected
        assertTrue(ex.getMessage().contains("Circular"));
        assertTrue(ex.getMessage().contains("'tb2'"));
        assertTrue(ex.getMessage().contains("'tb1'"));
    }
}

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

@Test
public void testImplicitDependsOnCycle() {
    DefaultListableBeanFactory lbf = new DefaultListableBeanFactory();
    RootBeanDefinition bd1 = new RootBeanDefinition(TestBean.class);
    bd1.setDependsOn("tb2");
    lbf.registerBeanDefinition("tb1", bd1);
    RootBeanDefinition bd2 = new RootBeanDefinition(TestBean.class);
    bd2.setDependsOn("tb3");
    lbf.registerBeanDefinition("tb2", bd2);
    RootBeanDefinition bd3 = new RootBeanDefinition(TestBean.class);
    bd3.setDependsOn("tb1");
    lbf.registerBeanDefinition("tb3", bd3);
    try {//from w  w  w.  j  ava2  s.com
        lbf.preInstantiateSingletons();
        fail("Should have thrown BeanCreationException");
    } catch (BeanCreationException ex) {
        // expected
        assertTrue(ex.getMessage().contains("Circular"));
        assertTrue(ex.getMessage().contains("'tb3'"));
        assertTrue(ex.getMessage().contains("'tb1'"));
    }
}

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

@Test
public void testGetBeanByTypeDefinedInParent() {
    DefaultListableBeanFactory parent = new DefaultListableBeanFactory();
    RootBeanDefinition bd1 = new RootBeanDefinition(TestBean.class);
    parent.registerBeanDefinition("bd1", bd1);
    DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(parent);
    TestBean bean = lbf.getBean(TestBean.class);
    assertThat(bean.getBeanName(), equalTo("bd1"));
}

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

@Test(expected = NoUniqueBeanDefinitionException.class)
public void testGetBeanByTypeWithAmbiguity() {
    DefaultListableBeanFactory lbf = new DefaultListableBeanFactory();
    RootBeanDefinition bd1 = new RootBeanDefinition(TestBean.class);
    RootBeanDefinition bd2 = new RootBeanDefinition(TestBean.class);
    lbf.registerBeanDefinition("bd1", bd1);
    lbf.registerBeanDefinition("bd2", bd2);
    lbf.getBean(TestBean.class);
}

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

@Test
public void testGetBeanByTypeWithPrimary() throws Exception {
    DefaultListableBeanFactory lbf = new DefaultListableBeanFactory();
    RootBeanDefinition bd1 = new RootBeanDefinition(TestBean.class);
    bd1.setLazyInit(true);/*from w  ww .java2  s  . c o  m*/
    RootBeanDefinition bd2 = new RootBeanDefinition(TestBean.class);
    bd2.setPrimary(true);
    lbf.registerBeanDefinition("bd1", bd1);
    lbf.registerBeanDefinition("bd2", bd2);
    TestBean bean = lbf.getBean(TestBean.class);
    assertThat(bean.getBeanName(), equalTo("bd2"));
    assertFalse(lbf.containsSingleton("bd1"));
}

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

@Test
public void testGetBeanByTypeWithMultiplePrimary() throws Exception {
    DefaultListableBeanFactory lbf = new DefaultListableBeanFactory();
    RootBeanDefinition bd1 = new RootBeanDefinition(TestBean.class);
    bd1.setPrimary(true);//from  w  w w .  j a  v a2 s .  co  m
    RootBeanDefinition bd2 = new RootBeanDefinition(TestBean.class);
    bd2.setPrimary(true);
    lbf.registerBeanDefinition("bd1", bd1);
    lbf.registerBeanDefinition("bd2", bd2);
    thrown.expect(NoUniqueBeanDefinitionException.class);
    thrown.expectMessage(containsString("more than one 'primary'"));
    lbf.getBean(TestBean.class);
}

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

@Test
public void testGetBeanByTypeWithPriority() throws Exception {
    DefaultListableBeanFactory lbf = new DefaultListableBeanFactory();
    lbf.setDependencyComparator(AnnotationAwareOrderComparator.INSTANCE);
    RootBeanDefinition bd1 = new RootBeanDefinition(HighPriorityTestBean.class);
    RootBeanDefinition bd2 = new RootBeanDefinition(LowPriorityTestBean.class);
    lbf.registerBeanDefinition("bd1", bd1);
    lbf.registerBeanDefinition("bd2", bd2);
    TestBean bean = lbf.getBean(TestBean.class);
    assertThat(bean.getBeanName(), equalTo("bd1"));
}

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

@Test
public void testGetBeanByTypeWithMultiplePriority() throws Exception {
    DefaultListableBeanFactory lbf = new DefaultListableBeanFactory();
    lbf.setDependencyComparator(AnnotationAwareOrderComparator.INSTANCE);
    RootBeanDefinition bd1 = new RootBeanDefinition(HighPriorityTestBean.class);
    RootBeanDefinition bd2 = new RootBeanDefinition(HighPriorityTestBean.class);
    lbf.registerBeanDefinition("bd1", bd1);
    lbf.registerBeanDefinition("bd2", bd2);
    thrown.expect(NoUniqueBeanDefinitionException.class);
    thrown.expectMessage(containsString("Multiple beans found with the same priority"));
    thrown.expectMessage(containsString("5")); // conflicting priority
    lbf.getBean(TestBean.class);
}

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

@Test
public void testGetBeanByTypeWithPriorityAndNullInstance() throws Exception {
    DefaultListableBeanFactory lbf = new DefaultListableBeanFactory();
    lbf.setDependencyComparator(AnnotationAwareOrderComparator.INSTANCE);
    RootBeanDefinition bd1 = new RootBeanDefinition(HighPriorityTestBean.class);
    RootBeanDefinition bd2 = new RootBeanDefinition(NullTestBeanFactoryBean.class);
    lbf.registerBeanDefinition("bd1", bd1);
    lbf.registerBeanDefinition("bd2", bd2);
    TestBean bean = lbf.getBean(TestBean.class);
    assertThat(bean.getBeanName(), equalTo("bd1"));
}