diff --git a/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/function/FunctionConfiguration.java b/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/function/FunctionConfiguration.java index 525a677d8..9e48a340a 100644 --- a/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/function/FunctionConfiguration.java +++ b/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/function/FunctionConfiguration.java @@ -129,12 +129,15 @@ public class FunctionConfiguration { BindingServiceProperties serviceProperties, ConfigurableApplicationContext applicationContext, FunctionBindingRegistrar bindingHolder, BinderAwareChannelResolver dynamicDestinationResolver) { - if (bindableProxyFactories == null) { - return null; - } + boolean shouldCreateInitializer = bindableProxyFactories != null + && (applicationContext.containsBean("output") + || ObjectUtils.isEmpty(applicationContext.getBeanNamesForAnnotation(EnableBinding.class))); + + return shouldCreateInitializer + ? new FunctionChannelBindingInitializer(functionCatalog, functionProperties, bindableProxyFactories, + serviceProperties, dynamicDestinationResolver) + : null; - return new FunctionChannelBindingInitializer(functionCatalog, functionProperties, bindableProxyFactories, - serviceProperties, dynamicDestinationResolver); } /*