org.springframework.beans.factory.support.RootBeanDefinition#setAbstract ( )源码实例Demo

下面列出了org.springframework.beans.factory.support.RootBeanDefinition#setAbstract ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

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

	RootBeanDefinition parentDefinition = new RootBeanDefinition(TestBean.class);
	parentDefinition.setAbstract(true);
	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"));
}
 
@Test
public void testCanReferenceParentBeanFromChildViaAlias() {
	final String EXPECTED_NAME = "Juergen";
	final int EXPECTED_AGE = 41;

	RootBeanDefinition parentDefinition = new RootBeanDefinition(TestBean.class);
	parentDefinition.setAbstract(true);
	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"));
}
 
@Test
public void testCanReferenceParentBeanFromChildViaAlias() {
	final String EXPECTED_NAME = "Juergen";
	final int EXPECTED_AGE = 41;

	RootBeanDefinition parentDefinition = new RootBeanDefinition(TestBean.class);
	parentDefinition.setAbstract(true);
	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"));
}
 
@Test
public void testGetTypeForAbstractFactoryBean() {
	DefaultListableBeanFactory lbf = new DefaultListableBeanFactory();
	RootBeanDefinition bd = new RootBeanDefinition(FactoryBeanThatShouldntBeCalled.class);
	bd.setAbstract(true);
	lbf.registerBeanDefinition("factoryBean", bd);
	assertNull(lbf.getType("factoryBean"));
}
 
@Test
public void testGetTypeForAbstractFactoryBean() {
	DefaultListableBeanFactory lbf = new DefaultListableBeanFactory();
	RootBeanDefinition bd = new RootBeanDefinition(FactoryBeanThatShouldntBeCalled.class);
	bd.setAbstract(true);
	lbf.registerBeanDefinition("factoryBean", bd);
	assertNull(lbf.getType("factoryBean"));
}
 
@Test
public void testGetTypeForAbstractFactoryBean() {
	DefaultListableBeanFactory lbf = new DefaultListableBeanFactory();
	RootBeanDefinition bd = new RootBeanDefinition(FactoryBeanThatShouldntBeCalled.class);
	bd.setAbstract(true);
	lbf.registerBeanDefinition("factoryBean", bd);
	assertNull(lbf.getType("factoryBean"));
}