Skip to content

Commit 389dead

Browse files
committed
Merge pull request #42611 from quaff
* pr/42611: Polish "Use RootBeanDefinition if possible" Use RootBeanDefinition if possible Closes gh-42611
2 parents f3d86b6 + 0c0acb4 commit 389dead

File tree

8 files changed

+20
-22
lines changed

8 files changed

+20
-22
lines changed

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/domain/EntityScanPackages.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2012-2023 the original author or authors.
2+
* Copyright 2012-2024 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -28,7 +28,7 @@
2828
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
2929
import org.springframework.beans.factory.config.BeanDefinition;
3030
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
31-
import org.springframework.beans.factory.support.GenericBeanDefinition;
31+
import org.springframework.beans.factory.support.RootBeanDefinition;
3232
import org.springframework.context.ConfigurableApplicationContext;
3333
import org.springframework.context.annotation.ImportBeanDefinitionRegistrar;
3434
import org.springframework.core.annotation.AnnotationAttributes;
@@ -159,7 +159,7 @@ private Set<String> getPackagesToScan(AnnotationMetadata metadata) {
159159

160160
}
161161

162-
static class EntityScanPackagesBeanDefinition extends GenericBeanDefinition {
162+
static class EntityScanPackagesBeanDefinition extends RootBeanDefinition {
163163

164164
private final Set<String> packageNames = new LinkedHashSet<>();
165165

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/webservices/WebServicesAutoConfiguration.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2012-2023 the original author or authors.
2+
* Copyright 2012-2024 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -124,7 +124,7 @@ private <T> void registerBeans(String location, String pattern, Class<T> type,
124124
Function<Resource, T> beanSupplier, BeanDefinitionRegistry registry) {
125125
for (Resource resource : getResources(location, pattern)) {
126126
BeanDefinition beanDefinition = BeanDefinitionBuilder
127-
.genericBeanDefinition(type, () -> beanSupplier.apply(resource))
127+
.rootBeanDefinition(type, () -> beanSupplier.apply(resource))
128128
.getBeanDefinition();
129129
registry.registerBeanDefinition(StringUtils.stripFilenameExtension(resource.getFilename()),
130130
beanDefinition);

spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/SharedMetadataReaderFactoryContextInitializerTests.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2012-2023 the original author or authors.
2+
* Copyright 2012-2024 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -22,7 +22,6 @@
2222

2323
import org.springframework.beans.factory.config.BeanDefinition;
2424
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
25-
import org.springframework.beans.factory.support.AbstractBeanDefinition;
2625
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
2726
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
2827
import org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor;
@@ -71,9 +70,8 @@ void initializeWhenUsingSupplierDecorates() {
7170
ConfigurationClassPostProcessor configurationAnnotationPostProcessor = mock(
7271
ConfigurationClassPostProcessor.class);
7372
BeanDefinition beanDefinition = BeanDefinitionBuilder
74-
.genericBeanDefinition(ConfigurationClassPostProcessor.class)
73+
.rootBeanDefinition(ConfigurationClassPostProcessor.class, () -> configurationAnnotationPostProcessor)
7574
.getBeanDefinition();
76-
((AbstractBeanDefinition) beanDefinition).setInstanceSupplier(() -> configurationAnnotationPostProcessor);
7775
registry.registerBeanDefinition(AnnotationConfigUtils.CONFIGURATION_ANNOTATION_PROCESSOR_BEAN_NAME,
7876
beanDefinition);
7977
CachingMetadataReaderFactoryPostProcessor postProcessor = new CachingMetadataReaderFactoryPostProcessor(

spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/restdocs/RestDocumentationContextProviderRegistrar.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2012-2023 the original author or authors.
2+
* Copyright 2012-2024 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -39,7 +39,7 @@ public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, B
3939
Map<String, Object> annotationAttributes = importingClassMetadata
4040
.getAnnotationAttributes(AutoConfigureRestDocs.class.getName());
4141
BeanDefinitionBuilder definitionBuilder = BeanDefinitionBuilder
42-
.genericBeanDefinition(ManualRestDocumentation.class);
42+
.rootBeanDefinition(ManualRestDocumentation.class);
4343
String outputDir = (String) annotationAttributes.get("outputDir");
4444
if (StringUtils.hasText(outputDir)) {
4545
definitionBuilder.addConstructorArgValue(outputDir);

spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/properties/BoundConfigurationProperties.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,9 +79,9 @@ public static BoundConfigurationProperties get(ApplicationContext context) {
7979
static void register(BeanDefinitionRegistry registry) {
8080
Assert.notNull(registry, "Registry must not be null");
8181
if (!registry.containsBeanDefinition(BEAN_NAME)) {
82-
BeanDefinition definition = BeanDefinitionBuilder.genericBeanDefinition(BoundConfigurationProperties.class)
82+
BeanDefinition definition = BeanDefinitionBuilder.rootBeanDefinition(BoundConfigurationProperties.class)
83+
.setRole(BeanDefinition.ROLE_INFRASTRUCTURE)
8384
.getBeanDefinition();
84-
definition.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);
8585
registry.registerBeanDefinition(BEAN_NAME, definition);
8686
}
8787
}

spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/servlet/ServletComponentScanRegistrar.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2012-2023 the original author or authors.
2+
* Copyright 2012-2024 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -24,7 +24,7 @@
2424

2525
import org.springframework.beans.factory.config.BeanDefinition;
2626
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
27-
import org.springframework.beans.factory.support.GenericBeanDefinition;
27+
import org.springframework.beans.factory.support.RootBeanDefinition;
2828
import org.springframework.context.annotation.ImportBeanDefinitionRegistrar;
2929
import org.springframework.core.annotation.AnnotationAttributes;
3030
import org.springframework.core.type.AnnotationMetadata;
@@ -79,7 +79,7 @@ private Set<String> getPackagesToScan(AnnotationMetadata metadata) {
7979
return packagesToScan;
8080
}
8181

82-
static final class ServletComponentRegisteringPostProcessorBeanDefinition extends GenericBeanDefinition {
82+
static final class ServletComponentRegisteringPostProcessorBeanDefinition extends RootBeanDefinition {
8383

8484
private final Set<String> packageNames = new LinkedHashSet<>();
8585

spring-boot-project/spring-boot/src/test/java/org/springframework/boot/context/properties/ConfigurationPropertiesBeanRegistrarTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
import org.springframework.beans.factory.config.BeanDefinition;
2525
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
2626
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
27-
import org.springframework.beans.factory.support.GenericBeanDefinition;
27+
import org.springframework.beans.factory.support.RootBeanDefinition;
2828
import org.springframework.boot.context.properties.bind.BindMethod;
2929
import org.springframework.context.annotation.Primary;
3030
import org.springframework.context.annotation.Scope;
@@ -60,7 +60,7 @@ void registerWhenNotAlreadyRegisteredAddBeanDefinition() {
6060
@Test
6161
void registerWhenAlreadyContainsNameDoesNotReplace() {
6262
String beanName = "beancp-" + BeanConfigurationProperties.class.getName();
63-
this.registry.registerBeanDefinition(beanName, new GenericBeanDefinition());
63+
this.registry.registerBeanDefinition(beanName, new RootBeanDefinition());
6464
this.registrar.register(BeanConfigurationProperties.class);
6565
BeanDefinition definition = this.registry.getBeanDefinition(beanName);
6666
assertThat(definition).isNotNull();

spring-boot-project/spring-boot/src/test/java/org/springframework/boot/context/properties/ConfigurationPropertiesTests.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,8 @@
5151
import org.springframework.beans.factory.config.BeanDefinition;
5252
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
5353
import org.springframework.beans.factory.support.AbstractBeanDefinition;
54+
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
5455
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
55-
import org.springframework.beans.factory.support.GenericBeanDefinition;
5656
import org.springframework.beans.factory.support.RootBeanDefinition;
5757
import org.springframework.boot.SpringApplication;
5858
import org.springframework.boot.context.properties.bind.BindException;
@@ -397,9 +397,9 @@ protected void onRefresh() {
397397

398398
};
399399
this.context.register(WithFactoryBeanConfiguration.class);
400-
GenericBeanDefinition beanDefinition = new GenericBeanDefinition();
401-
beanDefinition.setBeanClass(FactoryBeanTester.class);
402-
beanDefinition.setAutowireMode(AbstractBeanDefinition.AUTOWIRE_BY_TYPE);
400+
BeanDefinition beanDefinition = BeanDefinitionBuilder.rootBeanDefinition(FactoryBeanTester.class)
401+
.setAutowireMode(AbstractBeanDefinition.AUTOWIRE_BY_TYPE)
402+
.getBeanDefinition();
403403
this.context.registerBeanDefinition("test", beanDefinition);
404404
this.context.refresh();
405405
assertThat(WithFactoryBeanConfiguration.factoryBeanInitialized).as("Not Initialized").isTrue();

0 commit comments

Comments
 (0)