Lookup method definitions can be overridden in child beans

Issue: SPR-13388
This commit is contained in:
Juergen Hoeller
2015-08-25 17:08:49 +02:00
parent b198cad58e
commit 74e6213baf
3 changed files with 28 additions and 7 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2014 the original author or authors.
* Copyright 2002-2015 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -90,6 +90,16 @@ public class LookupMethodTests {
}
}
@Test
public void testWithOverriddenLookupMethod() {
AbstractBean bean = (AbstractBean) beanFactory.getBean("extendedBean");
assertNotNull(bean);
TestBean expected = bean.getOneArgument("haha");
assertEquals(TestBean.class, expected.getClass());
assertEquals("haha", expected.getName());
assertTrue(expected.isJedi());
}
public static abstract class AbstractBean {

View File

@@ -9,6 +9,14 @@
<lookup-method name="getTwoArguments" bean="testBean"/>
</bean>
<bean id="extendedBean" parent="abstractBean">
<lookup-method name="getOneArgument" bean="jedi"/>
</bean>
<bean id="testBean" class="org.springframework.tests.sample.beans.TestBean" scope="prototype"/>
<bean id="jedi" class="org.springframework.tests.sample.beans.TestBean" scope="prototype" autowire-candidate="false">
<property name="jedi" value="true"/>
</bean>
</beans>