1
1
/*
2
- * Copyright 2002-2021 the original author or authors.
2
+ * Copyright 2002-2022 the original author or authors.
3
3
*
4
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
5
* you may not use this file except in compliance with the License.
@@ -41,7 +41,7 @@ public class BeanMethodPolymorphismTests {
41
41
@ Test
42
42
public void beanMethodDetectedOnSuperClass () {
43
43
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext (Config .class );
44
- assertThat (ctx .getBean ("testBean" , TestBean .class )).isNotNull ();
44
+ assertThat (ctx .getBean ("testBean" , BaseTestBean .class )).isNotNull ();
45
45
}
46
46
47
47
@ Test
@@ -51,7 +51,7 @@ public void beanMethodOverriding() {
51
51
ctx .setAllowBeanDefinitionOverriding (false );
52
52
ctx .refresh ();
53
53
assertThat (ctx .getDefaultListableBeanFactory ().containsSingleton ("testBean" )).isFalse ();
54
- assertThat (ctx .getBean ("testBean" , TestBean .class ).toString ()).isEqualTo ("overridden" );
54
+ assertThat (ctx .getBean ("testBean" , BaseTestBean .class ).toString ()).isEqualTo ("overridden" );
55
55
assertThat (ctx .getDefaultListableBeanFactory ().containsSingleton ("testBean" )).isTrue ();
56
56
}
57
57
@@ -62,7 +62,7 @@ public void beanMethodOverridingOnASM() {
62
62
ctx .setAllowBeanDefinitionOverriding (false );
63
63
ctx .refresh ();
64
64
assertThat (ctx .getDefaultListableBeanFactory ().containsSingleton ("testBean" )).isFalse ();
65
- assertThat (ctx .getBean ("testBean" , TestBean .class ).toString ()).isEqualTo ("overridden" );
65
+ assertThat (ctx .getBean ("testBean" , BaseTestBean .class ).toString ()).isEqualTo ("overridden" );
66
66
assertThat (ctx .getDefaultListableBeanFactory ().containsSingleton ("testBean" )).isTrue ();
67
67
}
68
68
@@ -73,7 +73,7 @@ public void beanMethodOverridingWithNarrowedReturnType() {
73
73
ctx .setAllowBeanDefinitionOverriding (false );
74
74
ctx .refresh ();
75
75
assertThat (ctx .getDefaultListableBeanFactory ().containsSingleton ("testBean" )).isFalse ();
76
- assertThat (ctx .getBean ("testBean" , TestBean .class ).toString ()).isEqualTo ("overridden" );
76
+ assertThat (ctx .getBean ("testBean" , BaseTestBean .class ).toString ()).isEqualTo ("overridden" );
77
77
assertThat (ctx .getDefaultListableBeanFactory ().containsSingleton ("testBean" )).isTrue ();
78
78
}
79
79
@@ -84,7 +84,7 @@ public void beanMethodOverridingWithNarrowedReturnTypeOnASM() {
84
84
ctx .setAllowBeanDefinitionOverriding (false );
85
85
ctx .refresh ();
86
86
assertThat (ctx .getDefaultListableBeanFactory ().containsSingleton ("testBean" )).isFalse ();
87
- assertThat (ctx .getBean ("testBean" , TestBean .class ).toString ()).isEqualTo ("overridden" );
87
+ assertThat (ctx .getBean ("testBean" , BaseTestBean .class ).toString ()).isEqualTo ("overridden" );
88
88
assertThat (ctx .getDefaultListableBeanFactory ().containsSingleton ("testBean" )).isTrue ();
89
89
}
90
90
@@ -171,16 +171,24 @@ public void beanMethodThroughAopProxy() {
171
171
ctx .register (AnnotationAwareAspectJAutoProxyCreator .class );
172
172
ctx .register (TestAdvisor .class );
173
173
ctx .refresh ();
174
- ctx .getBean ("testBean" , TestBean .class );
174
+ ctx .getBean ("testBean" , BaseTestBean .class );
175
+ }
176
+
177
+
178
+ static class BaseTestBean {
179
+ }
180
+
181
+
182
+ static class ExtendedTestBean extends BaseTestBean {
175
183
}
176
184
177
185
178
186
@ Configuration
179
187
static class BaseConfig {
180
188
181
189
@ Bean
182
- public TestBean testBean () {
183
- return new TestBean ();
190
+ public BaseTestBean testBean () {
191
+ return new BaseTestBean ();
184
192
}
185
193
}
186
194
@@ -195,8 +203,8 @@ static class OverridingConfig extends BaseConfig {
195
203
196
204
@ Bean @ Lazy
197
205
@ Override
198
- public TestBean testBean () {
199
- return new TestBean () {
206
+ public BaseTestBean testBean () {
207
+ return new BaseTestBean () {
200
208
@ Override
201
209
public String toString () {
202
210
return "overridden" ;
@@ -206,10 +214,6 @@ public String toString() {
206
214
}
207
215
208
216
209
- static class ExtendedTestBean extends TestBean {
210
- }
211
-
212
-
213
217
@ Configuration
214
218
static class NarrowedOverridingConfig extends BaseConfig {
215
219
@@ -226,7 +230,7 @@ public String toString() {
226
230
}
227
231
228
232
229
- @ Configuration
233
+ @ Configuration ( enforceUniqueMethods = false )
230
234
static class ConfigWithOverloading {
231
235
232
236
@ Bean
@@ -241,7 +245,7 @@ String aString(Integer dependency) {
241
245
}
242
246
243
247
244
- @ Configuration
248
+ @ Configuration ( enforceUniqueMethods = false )
245
249
static class ConfigWithOverloadingAndAdditionalMetadata {
246
250
247
251
@ Bean @ Lazy
0 commit comments