diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/reactive/ReactiveWebServerFactoryAutoConfiguration.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/reactive/ReactiveWebServerFactoryAutoConfiguration.java index 5eeedff51e..33875d797b 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/reactive/ReactiveWebServerFactoryAutoConfiguration.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/reactive/ReactiveWebServerFactoryAutoConfiguration.java @@ -16,6 +16,8 @@ package org.springframework.boot.autoconfigure.web.reactive; +import java.util.function.Supplier; + import org.springframework.beans.BeansException; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.BeanFactoryAware; @@ -100,12 +102,14 @@ public class ReactiveWebServerFactoryAutoConfiguration { return; } registerSyntheticBeanIfMissing(registry, "webServerFactoryCustomizerBeanPostProcessor", - WebServerFactoryCustomizerBeanPostProcessor.class); + WebServerFactoryCustomizerBeanPostProcessor.class, + WebServerFactoryCustomizerBeanPostProcessor::new); } - private void registerSyntheticBeanIfMissing(BeanDefinitionRegistry registry, String name, Class beanClass) { + private void registerSyntheticBeanIfMissing(BeanDefinitionRegistry registry, String name, + Class beanClass, Supplier instanceSupplier) { if (ObjectUtils.isEmpty(this.beanFactory.getBeanNamesForType(beanClass, true, false))) { - RootBeanDefinition beanDefinition = new RootBeanDefinition(beanClass); + RootBeanDefinition beanDefinition = new RootBeanDefinition(beanClass, instanceSupplier); beanDefinition.setSynthetic(true); registry.registerBeanDefinition(name, beanDefinition); } diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/servlet/ServletWebServerFactoryAutoConfiguration.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/servlet/ServletWebServerFactoryAutoConfiguration.java index 2d74032b6e..ba5e7c2379 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/servlet/ServletWebServerFactoryAutoConfiguration.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/servlet/ServletWebServerFactoryAutoConfiguration.java @@ -16,6 +16,8 @@ package org.springframework.boot.autoconfigure.web.servlet; +import java.util.function.Supplier; + import javax.servlet.DispatcherType; import javax.servlet.ServletRequest; @@ -111,14 +113,16 @@ public class ServletWebServerFactoryAutoConfiguration { return; } registerSyntheticBeanIfMissing(registry, "webServerFactoryCustomizerBeanPostProcessor", - WebServerFactoryCustomizerBeanPostProcessor.class); + WebServerFactoryCustomizerBeanPostProcessor.class, + WebServerFactoryCustomizerBeanPostProcessor::new); registerSyntheticBeanIfMissing(registry, "errorPageRegistrarBeanPostProcessor", - ErrorPageRegistrarBeanPostProcessor.class); + ErrorPageRegistrarBeanPostProcessor.class, ErrorPageRegistrarBeanPostProcessor::new); } - private void registerSyntheticBeanIfMissing(BeanDefinitionRegistry registry, String name, Class beanClass) { + private void registerSyntheticBeanIfMissing(BeanDefinitionRegistry registry, String name, + Class beanClass, Supplier instanceSupplier) { if (ObjectUtils.isEmpty(this.beanFactory.getBeanNamesForType(beanClass, true, false))) { - RootBeanDefinition beanDefinition = new RootBeanDefinition(beanClass); + RootBeanDefinition beanDefinition = new RootBeanDefinition(beanClass, instanceSupplier); beanDefinition.setSynthetic(true); registry.registerBeanDefinition(name, beanDefinition); }