提交 c89e3e6e 编写于 作者: J Juergen Hoeller

Restore original factory method caching (addressing Boot regressions)

Issue: SPR-17358
上级 d0592416
......@@ -775,11 +775,6 @@ public abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac
}
}
if (uniqueCandidate != null) {
synchronized (mbd.constructorArgumentLock) {
mbd.resolvedConstructorOrFactoryMethod = uniqueCandidate;
}
}
if (commonType == null) {
return null;
}
......
......@@ -83,10 +83,13 @@ public class BeanMethodQualificationTests {
new AnnotationConfigApplicationContext(CustomConfig.class, CustomPojo.class);
assertFalse(ctx.getBeanFactory().containsSingleton("testBean1"));
assertFalse(ctx.getBeanFactory().containsSingleton("testBean2"));
assertTrue(BeanFactoryAnnotationUtils.isQualifierMatch(value -> value.equals("boring"),
"testBean2", ctx.getDefaultListableBeanFactory()));
// TODO: assertTrue(BeanFactoryAnnotationUtils.isQualifierMatch(value -> value.equals("boring"),
// "testBean2", ctx.getDefaultListableBeanFactory()));
CustomPojo pojo = ctx.getBean(CustomPojo.class);
assertThat(pojo.testBean.getName(), equalTo("interesting"));
TestBean testBean2 = BeanFactoryAnnotationUtils.qualifiedBeanOfType(
ctx.getDefaultListableBeanFactory(), TestBean.class, "boring");
assertThat(testBean2.getName(), equalTo("boring"));
}
@Test
......@@ -136,8 +139,10 @@ public class BeanMethodQualificationTests {
}
@Bean @Boring
public TestBean testBean2() {
return new TestBean("boring");
public TestBean testBean2(@Lazy TestBean testBean1) {
TestBean tb = new TestBean("boring");
tb.setSpouse(testBean1);
return tb;
}
}
......@@ -150,8 +155,10 @@ public class BeanMethodQualificationTests {
}
@Bean @Boring @Scope("prototype")
public TestBean testBean2() {
return new TestBean("boring");
public TestBean testBean2(TestBean testBean1) {
TestBean tb = new TestBean("boring");
tb.setSpouse(testBean1);
return tb;
}
}
......@@ -164,8 +171,10 @@ public class BeanMethodQualificationTests {
}
@Bean @Boring @Scope(value="prototype", proxyMode=ScopedProxyMode.TARGET_CLASS)
public TestBean testBean2() {
return new TestBean("boring");
public TestBean testBean2(TestBean testBean1) {
TestBean tb = new TestBean("boring");
tb.setSpouse(testBean1);
return tb;
}
}
......@@ -191,8 +200,10 @@ public class BeanMethodQualificationTests {
}
@Bean @Qualifier("boring") @Lazy
public TestBean testBean2() {
return new TestBean("boring");
public TestBean testBean2(@Lazy TestBean testBean1) {
TestBean tb = new TestBean("boring");
tb.setSpouse(testBean1);
return tb;
}
}
......@@ -205,8 +216,10 @@ public class BeanMethodQualificationTests {
}
@Bean @Qualifier("boring")
public TestBean testBean2() {
return new TestBean("boring");
public TestBean testBean2(@Lazy TestBean testBean1) {
TestBean tb = new TestBean("boring");
tb.setSpouse(testBean1);
return tb;
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册