diff --git a/spring-cloud-function-web/src/main/java/org/springframework/cloud/function/web/function/FunctionEndpointInitializer.java b/spring-cloud-function-web/src/main/java/org/springframework/cloud/function/web/function/FunctionEndpointInitializer.java index 9f88e224d..22b40c8d7 100644 --- a/spring-cloud-function-web/src/main/java/org/springframework/cloud/function/web/function/FunctionEndpointInitializer.java +++ b/spring-cloud-function-web/src/main/java/org/springframework/cloud/function/web/function/FunctionEndpointInitializer.java @@ -108,8 +108,7 @@ class FunctionEndpointInitializer implements ApplicationContextInitializer new FunctionEndpointFactory(context.getBean(FunctionCatalog.class), context.getBean(RequestProcessor.class), context.getEnvironment())); - context.registerBean(RouterFunction.class, - () -> context.getBean(FunctionEndpointFactory.class).functionEndpoints()); + RouterFunctionRegister.register(context); } private HttpWebHandlerAdapter httpHandler(GenericApplicationContext context) { @@ -131,6 +130,15 @@ class FunctionEndpointInitializer implements ApplicationContextInitializer context.getBean(FunctionEndpointFactory.class).functionEndpoints()); + } + + } + private static class ServerListener implements SmartApplicationListener { private static Log logger = LogFactory.getLog(ServerListener.class); diff --git a/spring-cloud-function-web/src/main/java/org/springframework/cloud/function/web/source/FunctionExporterInitializer.java b/spring-cloud-function-web/src/main/java/org/springframework/cloud/function/web/source/FunctionExporterInitializer.java index a7bcdf3f7..41e906d1d 100644 --- a/spring-cloud-function-web/src/main/java/org/springframework/cloud/function/web/source/FunctionExporterInitializer.java +++ b/spring-cloud-function-web/src/main/java/org/springframework/cloud/function/web/source/FunctionExporterInitializer.java @@ -16,6 +16,8 @@ package org.springframework.cloud.function.web.source; +import java.util.function.Supplier; + import org.springframework.boot.web.reactive.context.ConfigurableReactiveWebEnvironment; import org.springframework.boot.web.reactive.context.ReactiveWebApplicationContext; import org.springframework.cloud.function.context.FunctionCatalog; @@ -27,6 +29,7 @@ import org.springframework.util.ClassUtils; import org.springframework.web.context.ConfigurableWebEnvironment; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.reactive.function.client.WebClient; +import org.springframework.web.reactive.function.client.WebClient.Builder; /** * @author Dave Syer @@ -49,7 +52,12 @@ class FunctionExporterInitializer implements ApplicationContextInitializer WebClient.builder()); + context.registerBean(WebClient.Builder.class, new Supplier() { + @Override + public Builder get() { + return WebClient.builder(); + } + }); } } }