Merge pull request #42611 from quaff
* pr/42611: Polish "Use RootBeanDefinition if possible" Use RootBeanDefinition if possible Closes gh-42611
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2023 the original author or authors.
|
||||
* Copyright 2012-2024 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.
|
||||
@@ -28,7 +28,7 @@ import org.springframework.beans.factory.BeanFactory;
|
||||
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
|
||||
import org.springframework.beans.factory.config.BeanDefinition;
|
||||
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
|
||||
import org.springframework.beans.factory.support.GenericBeanDefinition;
|
||||
import org.springframework.beans.factory.support.RootBeanDefinition;
|
||||
import org.springframework.context.ConfigurableApplicationContext;
|
||||
import org.springframework.context.annotation.ImportBeanDefinitionRegistrar;
|
||||
import org.springframework.core.annotation.AnnotationAttributes;
|
||||
@@ -159,7 +159,7 @@ public class EntityScanPackages {
|
||||
|
||||
}
|
||||
|
||||
static class EntityScanPackagesBeanDefinition extends GenericBeanDefinition {
|
||||
static class EntityScanPackagesBeanDefinition extends RootBeanDefinition {
|
||||
|
||||
private final Set<String> packageNames = new LinkedHashSet<>();
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2023 the original author or authors.
|
||||
* Copyright 2012-2024 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.
|
||||
@@ -124,7 +124,7 @@ public class WebServicesAutoConfiguration {
|
||||
Function<Resource, T> beanSupplier, BeanDefinitionRegistry registry) {
|
||||
for (Resource resource : getResources(location, pattern)) {
|
||||
BeanDefinition beanDefinition = BeanDefinitionBuilder
|
||||
.genericBeanDefinition(type, () -> beanSupplier.apply(resource))
|
||||
.rootBeanDefinition(type, () -> beanSupplier.apply(resource))
|
||||
.getBeanDefinition();
|
||||
registry.registerBeanDefinition(StringUtils.stripFilenameExtension(resource.getFilename()),
|
||||
beanDefinition);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2023 the original author or authors.
|
||||
* Copyright 2012-2024 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.
|
||||
@@ -22,7 +22,6 @@ import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.beans.factory.config.BeanDefinition;
|
||||
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
|
||||
import org.springframework.beans.factory.support.AbstractBeanDefinition;
|
||||
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
|
||||
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
|
||||
import org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor;
|
||||
@@ -71,9 +70,8 @@ class SharedMetadataReaderFactoryContextInitializerTests {
|
||||
ConfigurationClassPostProcessor configurationAnnotationPostProcessor = mock(
|
||||
ConfigurationClassPostProcessor.class);
|
||||
BeanDefinition beanDefinition = BeanDefinitionBuilder
|
||||
.genericBeanDefinition(ConfigurationClassPostProcessor.class)
|
||||
.rootBeanDefinition(ConfigurationClassPostProcessor.class, () -> configurationAnnotationPostProcessor)
|
||||
.getBeanDefinition();
|
||||
((AbstractBeanDefinition) beanDefinition).setInstanceSupplier(() -> configurationAnnotationPostProcessor);
|
||||
registry.registerBeanDefinition(AnnotationConfigUtils.CONFIGURATION_ANNOTATION_PROCESSOR_BEAN_NAME,
|
||||
beanDefinition);
|
||||
CachingMetadataReaderFactoryPostProcessor postProcessor = new CachingMetadataReaderFactoryPostProcessor(
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2023 the original author or authors.
|
||||
* Copyright 2012-2024 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.
|
||||
@@ -39,7 +39,7 @@ class RestDocumentationContextProviderRegistrar implements ImportBeanDefinitionR
|
||||
Map<String, Object> annotationAttributes = importingClassMetadata
|
||||
.getAnnotationAttributes(AutoConfigureRestDocs.class.getName());
|
||||
BeanDefinitionBuilder definitionBuilder = BeanDefinitionBuilder
|
||||
.genericBeanDefinition(ManualRestDocumentation.class);
|
||||
.rootBeanDefinition(ManualRestDocumentation.class);
|
||||
String outputDir = (String) annotationAttributes.get("outputDir");
|
||||
if (StringUtils.hasText(outputDir)) {
|
||||
definitionBuilder.addConstructorArgValue(outputDir);
|
||||
|
||||
@@ -79,9 +79,9 @@ public class BoundConfigurationProperties {
|
||||
static void register(BeanDefinitionRegistry registry) {
|
||||
Assert.notNull(registry, "Registry must not be null");
|
||||
if (!registry.containsBeanDefinition(BEAN_NAME)) {
|
||||
BeanDefinition definition = BeanDefinitionBuilder.genericBeanDefinition(BoundConfigurationProperties.class)
|
||||
BeanDefinition definition = BeanDefinitionBuilder.rootBeanDefinition(BoundConfigurationProperties.class)
|
||||
.setRole(BeanDefinition.ROLE_INFRASTRUCTURE)
|
||||
.getBeanDefinition();
|
||||
definition.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);
|
||||
registry.registerBeanDefinition(BEAN_NAME, definition);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2023 the original author or authors.
|
||||
* Copyright 2012-2024 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.
|
||||
@@ -24,7 +24,7 @@ import java.util.function.Supplier;
|
||||
|
||||
import org.springframework.beans.factory.config.BeanDefinition;
|
||||
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
|
||||
import org.springframework.beans.factory.support.GenericBeanDefinition;
|
||||
import org.springframework.beans.factory.support.RootBeanDefinition;
|
||||
import org.springframework.context.annotation.ImportBeanDefinitionRegistrar;
|
||||
import org.springframework.core.annotation.AnnotationAttributes;
|
||||
import org.springframework.core.type.AnnotationMetadata;
|
||||
@@ -79,7 +79,7 @@ class ServletComponentScanRegistrar implements ImportBeanDefinitionRegistrar {
|
||||
return packagesToScan;
|
||||
}
|
||||
|
||||
static final class ServletComponentRegisteringPostProcessorBeanDefinition extends GenericBeanDefinition {
|
||||
static final class ServletComponentRegisteringPostProcessorBeanDefinition extends RootBeanDefinition {
|
||||
|
||||
private final Set<String> packageNames = new LinkedHashSet<>();
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ import org.springframework.aop.scope.ScopedProxyFactoryBean;
|
||||
import org.springframework.beans.factory.config.BeanDefinition;
|
||||
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
|
||||
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
|
||||
import org.springframework.beans.factory.support.GenericBeanDefinition;
|
||||
import org.springframework.beans.factory.support.RootBeanDefinition;
|
||||
import org.springframework.boot.context.properties.bind.BindMethod;
|
||||
import org.springframework.context.annotation.Primary;
|
||||
import org.springframework.context.annotation.Scope;
|
||||
@@ -60,7 +60,7 @@ class ConfigurationPropertiesBeanRegistrarTests {
|
||||
@Test
|
||||
void registerWhenAlreadyContainsNameDoesNotReplace() {
|
||||
String beanName = "beancp-" + BeanConfigurationProperties.class.getName();
|
||||
this.registry.registerBeanDefinition(beanName, new GenericBeanDefinition());
|
||||
this.registry.registerBeanDefinition(beanName, new RootBeanDefinition());
|
||||
this.registrar.register(BeanConfigurationProperties.class);
|
||||
BeanDefinition definition = this.registry.getBeanDefinition(beanName);
|
||||
assertThat(definition).isNotNull();
|
||||
|
||||
@@ -51,8 +51,8 @@ import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.beans.factory.config.BeanDefinition;
|
||||
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
|
||||
import org.springframework.beans.factory.support.AbstractBeanDefinition;
|
||||
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
|
||||
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
|
||||
import org.springframework.beans.factory.support.GenericBeanDefinition;
|
||||
import org.springframework.beans.factory.support.RootBeanDefinition;
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.context.properties.bind.BindException;
|
||||
@@ -397,9 +397,9 @@ class ConfigurationPropertiesTests {
|
||||
|
||||
};
|
||||
this.context.register(WithFactoryBeanConfiguration.class);
|
||||
GenericBeanDefinition beanDefinition = new GenericBeanDefinition();
|
||||
beanDefinition.setBeanClass(FactoryBeanTester.class);
|
||||
beanDefinition.setAutowireMode(AbstractBeanDefinition.AUTOWIRE_BY_TYPE);
|
||||
BeanDefinition beanDefinition = BeanDefinitionBuilder.rootBeanDefinition(FactoryBeanTester.class)
|
||||
.setAutowireMode(AbstractBeanDefinition.AUTOWIRE_BY_TYPE)
|
||||
.getBeanDefinition();
|
||||
this.context.registerBeanDefinition("test", beanDefinition);
|
||||
this.context.refresh();
|
||||
assertThat(WithFactoryBeanConfiguration.factoryBeanInitialized).as("Not Initialized").isTrue();
|
||||
|
||||
Reference in New Issue
Block a user