Skip to content

Commit 2434bb1

Browse files
committed
Polishing
1 parent 4063cb5 commit 2434bb1

File tree

5 files changed

+23
-12
lines changed

5 files changed

+23
-12
lines changed

spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClass.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,7 @@ final class ConfigurationClass {
128128
* @param metadata the metadata for the underlying class to represent
129129
* @param beanName name of the {@code @Configuration} class bean
130130
* @param scanned whether the underlying class has been registered through a scan
131+
* @since 6.2
131132
*/
132133
ConfigurationClass(AnnotationMetadata metadata, String beanName, boolean scanned) {
133134
Assert.notNull(beanName, "Bean name must not be null");

spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassBeanDefinitionReader.java

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,7 @@
1818

1919
import java.lang.reflect.Constructor;
2020
import java.lang.reflect.Method;
21-
import java.util.ArrayList;
22-
import java.util.Arrays;
2321
import java.util.HashMap;
24-
import java.util.List;
2522
import java.util.Map;
2623
import java.util.Set;
2724

@@ -194,13 +191,19 @@ private void loadBeanDefinitionsForBeanMethod(BeanMethod beanMethod) {
194191
AnnotationAttributes bean = AnnotationConfigUtils.attributesFor(metadata, Bean.class);
195192
Assert.state(bean != null, "No @Bean annotation attributes");
196193

197-
// Consider name and any aliases
198-
List<String> names = new ArrayList<>(Arrays.asList(bean.getStringArray("name")));
199-
String beanName = (!names.isEmpty() ? names.remove(0) : methodName);
200-
201-
// Register aliases even when overridden
202-
for (String alias : names) {
203-
this.registry.registerAlias(beanName, alias);
194+
// Consider name and any aliases.
195+
String[] explicitNames = bean.getStringArray("name");
196+
String beanName;
197+
if (explicitNames.length > 0) {
198+
beanName = explicitNames[0];
199+
// Register aliases even when overridden below.
200+
for (int i = 1; i < explicitNames.length; i++) {
201+
this.registry.registerAlias(beanName, explicitNames[i]);
202+
}
203+
}
204+
else {
205+
// Default bean name derived from method name.
206+
beanName = methodName;
204207
}
205208

206209
// Has this effectively been overridden before (for example, via XML)?

spring-context/src/test/java/org/springframework/context/annotation/configuration/ConfigurationBeanNameTests.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,7 @@ void registerOuterConfig_withBeanNameGenerator() {
6464
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext();
6565
ctx.setBeanNameGenerator(new AnnotationBeanNameGenerator() {
6666
@Override
67-
public String generateBeanName(
68-
BeanDefinition definition, BeanDefinitionRegistry registry) {
67+
public String generateBeanName(BeanDefinition definition, BeanDefinitionRegistry registry) {
6968
return "custom-" + super.generateBeanName(definition, registry);
7069
}
7170
});
@@ -78,17 +77,22 @@ public String generateBeanName(
7877
ctx.close();
7978
}
8079

80+
8181
@Configuration("outer")
8282
@Import(C.class)
8383
static class A {
84+
8485
@Component("nested")
8586
static class B {
87+
8688
@Bean public String nestedBean() { return ""; }
8789
}
8890
}
8991

92+
9093
@Configuration("imported")
9194
static class C {
95+
9296
@Bean public String s() { return "s"; }
9397
}
9498

spring-context/src/test/java/org/springframework/context/annotation6/ComponentForScanning.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,5 @@
2020

2121
@Component
2222
public class ComponentForScanning {
23+
2324
}

spring-context/src/test/java/org/springframework/context/annotation6/ConfigForScanning.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,10 @@
2222

2323
@Configuration
2424
public class ConfigForScanning {
25+
2526
@Bean
2627
public TestBean testBean() {
2728
return new TestBean();
2829
}
30+
2931
}

0 commit comments

Comments
 (0)