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

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

Introduction

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

Prototype

@Override
public BeanDefinition getMergedBeanDefinition(String name) throws BeansException 

Source Link

Document

Return a 'merged' BeanDefinition for the given bean name, merging a child bean definition with its parent if necessary.

Usage

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

@Test
public void testCanReferenceParentBeanFromChildViaAlias() {
    final String EXPECTED_NAME = "Juergen";
    final int EXPECTED_AGE = 41;

    RootBeanDefinition parentDefinition = new RootBeanDefinition(TestBean.class);
    parentDefinition.setAbstract(true);/*from   w  ww .ja v a  2s  .  co  m*/
    parentDefinition.getPropertyValues().add("name", EXPECTED_NAME);
    parentDefinition.getPropertyValues().add("age", EXPECTED_AGE);

    ChildBeanDefinition childDefinition = new ChildBeanDefinition("alias");

    DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
    factory.registerBeanDefinition("parent", parentDefinition);
    factory.registerBeanDefinition("child", childDefinition);
    factory.registerAlias("parent", "alias");

    TestBean child = (TestBean) factory.getBean("child");
    assertEquals(EXPECTED_NAME, child.getName());
    assertEquals(EXPECTED_AGE, child.getAge());

    assertEquals("Use cached merged bean definition", factory.getMergedBeanDefinition("child"),
            factory.getMergedBeanDefinition("child"));
}

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

@Test
public void testScopeInheritanceForChildBeanDefinitions() throws Exception {
    RootBeanDefinition parent = new RootBeanDefinition();
    parent.setScope("bonanza!");

    AbstractBeanDefinition child = new ChildBeanDefinition("parent");
    child.setBeanClass(TestBean.class);

    DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
    factory.registerBeanDefinition("parent", parent);
    factory.registerBeanDefinition("child", child);

    BeanDefinition def = factory.getMergedBeanDefinition("child");
    assertEquals("Child 'scope' not inherited", "bonanza!", def.getScope());
}