|
|
|
|
@ -1,5 +1,5 @@
@@ -1,5 +1,5 @@
|
|
|
|
|
/* |
|
|
|
|
* Copyright 2002-2021 the original author or authors. |
|
|
|
|
* Copyright 2002-2022 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. |
|
|
|
|
@ -41,7 +41,7 @@ public class BeanMethodPolymorphismTests {
@@ -41,7 +41,7 @@ public class BeanMethodPolymorphismTests {
|
|
|
|
|
@Test |
|
|
|
|
public void beanMethodDetectedOnSuperClass() { |
|
|
|
|
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(Config.class); |
|
|
|
|
assertThat(ctx.getBean("testBean", TestBean.class)).isNotNull(); |
|
|
|
|
assertThat(ctx.getBean("testBean", BaseTestBean.class)).isNotNull(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
@ -51,7 +51,7 @@ public class BeanMethodPolymorphismTests {
@@ -51,7 +51,7 @@ public class BeanMethodPolymorphismTests {
|
|
|
|
|
ctx.setAllowBeanDefinitionOverriding(false); |
|
|
|
|
ctx.refresh(); |
|
|
|
|
assertThat(ctx.getDefaultListableBeanFactory().containsSingleton("testBean")).isFalse(); |
|
|
|
|
assertThat(ctx.getBean("testBean", TestBean.class).toString()).isEqualTo("overridden"); |
|
|
|
|
assertThat(ctx.getBean("testBean", BaseTestBean.class).toString()).isEqualTo("overridden"); |
|
|
|
|
assertThat(ctx.getDefaultListableBeanFactory().containsSingleton("testBean")).isTrue(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -62,7 +62,7 @@ public class BeanMethodPolymorphismTests {
@@ -62,7 +62,7 @@ public class BeanMethodPolymorphismTests {
|
|
|
|
|
ctx.setAllowBeanDefinitionOverriding(false); |
|
|
|
|
ctx.refresh(); |
|
|
|
|
assertThat(ctx.getDefaultListableBeanFactory().containsSingleton("testBean")).isFalse(); |
|
|
|
|
assertThat(ctx.getBean("testBean", TestBean.class).toString()).isEqualTo("overridden"); |
|
|
|
|
assertThat(ctx.getBean("testBean", BaseTestBean.class).toString()).isEqualTo("overridden"); |
|
|
|
|
assertThat(ctx.getDefaultListableBeanFactory().containsSingleton("testBean")).isTrue(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -73,7 +73,7 @@ public class BeanMethodPolymorphismTests {
@@ -73,7 +73,7 @@ public class BeanMethodPolymorphismTests {
|
|
|
|
|
ctx.setAllowBeanDefinitionOverriding(false); |
|
|
|
|
ctx.refresh(); |
|
|
|
|
assertThat(ctx.getDefaultListableBeanFactory().containsSingleton("testBean")).isFalse(); |
|
|
|
|
assertThat(ctx.getBean("testBean", TestBean.class).toString()).isEqualTo("overridden"); |
|
|
|
|
assertThat(ctx.getBean("testBean", BaseTestBean.class).toString()).isEqualTo("overridden"); |
|
|
|
|
assertThat(ctx.getDefaultListableBeanFactory().containsSingleton("testBean")).isTrue(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -84,7 +84,7 @@ public class BeanMethodPolymorphismTests {
@@ -84,7 +84,7 @@ public class BeanMethodPolymorphismTests {
|
|
|
|
|
ctx.setAllowBeanDefinitionOverriding(false); |
|
|
|
|
ctx.refresh(); |
|
|
|
|
assertThat(ctx.getDefaultListableBeanFactory().containsSingleton("testBean")).isFalse(); |
|
|
|
|
assertThat(ctx.getBean("testBean", TestBean.class).toString()).isEqualTo("overridden"); |
|
|
|
|
assertThat(ctx.getBean("testBean", BaseTestBean.class).toString()).isEqualTo("overridden"); |
|
|
|
|
assertThat(ctx.getDefaultListableBeanFactory().containsSingleton("testBean")).isTrue(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -171,7 +171,15 @@ public class BeanMethodPolymorphismTests {
@@ -171,7 +171,15 @@ public class BeanMethodPolymorphismTests {
|
|
|
|
|
ctx.register(AnnotationAwareAspectJAutoProxyCreator.class); |
|
|
|
|
ctx.register(TestAdvisor.class); |
|
|
|
|
ctx.refresh(); |
|
|
|
|
ctx.getBean("testBean", TestBean.class); |
|
|
|
|
ctx.getBean("testBean", BaseTestBean.class); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static class BaseTestBean { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static class ExtendedTestBean extends BaseTestBean { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -179,8 +187,8 @@ public class BeanMethodPolymorphismTests {
@@ -179,8 +187,8 @@ public class BeanMethodPolymorphismTests {
|
|
|
|
|
static class BaseConfig { |
|
|
|
|
|
|
|
|
|
@Bean |
|
|
|
|
public TestBean testBean() { |
|
|
|
|
return new TestBean(); |
|
|
|
|
public BaseTestBean testBean() { |
|
|
|
|
return new BaseTestBean(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -195,8 +203,8 @@ public class BeanMethodPolymorphismTests {
@@ -195,8 +203,8 @@ public class BeanMethodPolymorphismTests {
|
|
|
|
|
|
|
|
|
|
@Bean @Lazy |
|
|
|
|
@Override |
|
|
|
|
public TestBean testBean() { |
|
|
|
|
return new TestBean() { |
|
|
|
|
public BaseTestBean testBean() { |
|
|
|
|
return new BaseTestBean() { |
|
|
|
|
@Override |
|
|
|
|
public String toString() { |
|
|
|
|
return "overridden"; |
|
|
|
|
@ -206,10 +214,6 @@ public class BeanMethodPolymorphismTests {
@@ -206,10 +214,6 @@ public class BeanMethodPolymorphismTests {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static class ExtendedTestBean extends TestBean { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Configuration |
|
|
|
|
static class NarrowedOverridingConfig extends BaseConfig { |
|
|
|
|
|
|
|
|
|
@ -226,7 +230,7 @@ public class BeanMethodPolymorphismTests {
@@ -226,7 +230,7 @@ public class BeanMethodPolymorphismTests {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Configuration |
|
|
|
|
@Configuration(enforceUniqueMethods = false) |
|
|
|
|
static class ConfigWithOverloading { |
|
|
|
|
|
|
|
|
|
@Bean |
|
|
|
|
@ -241,7 +245,7 @@ public class BeanMethodPolymorphismTests {
@@ -241,7 +245,7 @@ public class BeanMethodPolymorphismTests {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Configuration |
|
|
|
|
@Configuration(enforceUniqueMethods = false) |
|
|
|
|
static class ConfigWithOverloadingAndAdditionalMetadata { |
|
|
|
|
|
|
|
|
|
@Bean @Lazy |
|
|
|
|
|