Class WebFluxRequestExecutingMessageHandler
java.lang.Object
org.springframework.integration.context.IntegrationObjectSupport
org.springframework.integration.handler.MessageHandlerSupport
org.springframework.integration.handler.AbstractMessageHandler
org.springframework.integration.handler.AbstractMessageProducingHandler
org.springframework.integration.handler.AbstractReplyProducingMessageHandler
org.springframework.integration.http.outbound.AbstractHttpRequestExecutingMessageHandler
org.springframework.integration.webflux.outbound.WebFluxRequestExecutingMessageHandler
- All Implemented Interfaces:
org.reactivestreams.Subscriber<org.springframework.messaging.Message<?>>,org.springframework.beans.factory.Aware,org.springframework.beans.factory.BeanClassLoaderAware,org.springframework.beans.factory.BeanFactoryAware,org.springframework.beans.factory.BeanNameAware,org.springframework.beans.factory.DisposableBean,org.springframework.beans.factory.InitializingBean,org.springframework.context.ApplicationContextAware,org.springframework.core.Ordered,org.springframework.integration.context.ExpressionCapable,org.springframework.integration.context.Orderable,org.springframework.integration.core.MessageProducer,org.springframework.integration.handler.HeaderPropagationAware,org.springframework.integration.IntegrationPattern,org.springframework.integration.support.context.NamedComponent,org.springframework.integration.support.management.IntegrationManagement,org.springframework.integration.support.management.TrackableComponent,org.springframework.messaging.MessageHandler,reactor.core.CoreSubscriber<org.springframework.messaging.Message<?>>
public class WebFluxRequestExecutingMessageHandler
extends org.springframework.integration.http.outbound.AbstractHttpRequestExecutingMessageHandler
A
MessageHandler implementation that executes
HTTP requests by delegating to a Reactive WebClient instance.- Since:
- 5.0
- See Also:
HttpRequestExecutingMessageHandler,WebClient
-
Nested Class Summary
-
Field Summary
Fields inherited from class org.springframework.integration.http.outbound.AbstractHttpRequestExecutingMessageHandler
uriFactoryFields inherited from class org.springframework.integration.handler.AbstractMessageProducingHandler
messagingTemplateFields inherited from class org.springframework.integration.context.IntegrationObjectSupport
EXPRESSION_PARSER, logger -
Constructor Summary
Constructors Constructor Description WebFluxRequestExecutingMessageHandler(java.lang.String uri)Create a handler that will send requests to the provided URI.WebFluxRequestExecutingMessageHandler(java.lang.String uri, org.springframework.web.reactive.function.client.WebClient webClient)Create a handler that will send requests to the provided URI using a provided WebClient.WebFluxRequestExecutingMessageHandler(java.net.URI uri)Create a handler that will send requests to the provided URI.WebFluxRequestExecutingMessageHandler(org.springframework.expression.Expression uriExpression)Create a handler that will send requests to the provided URI Expression.WebFluxRequestExecutingMessageHandler(org.springframework.expression.Expression uriExpression, org.springframework.web.reactive.function.client.WebClient webClient)Create a handler that will send requests to the provided URI using a provided WebClient. -
Method Summary
Modifier and Type Method Description protected java.lang.Objectexchange(java.lang.Object uri, org.springframework.http.HttpMethod httpMethod, org.springframework.http.HttpEntity<?> httpRequest, java.lang.Object expectedResponseType, org.springframework.messaging.Message<?> requestMessage, java.util.Map<java.lang.String,?> uriVariables)java.lang.StringgetComponentType()voidsetBodyExtractor(org.springframework.web.reactive.function.BodyExtractor<?,org.springframework.http.client.reactive.ClientHttpResponse> bodyExtractor)Specify aBodyExtractoras an alternative to theexpectedResponseTypeto allow to get low-level access to the receivedClientHttpResponse.voidsetEncodingMode(org.springframework.web.util.DefaultUriBuilderFactory.EncodingMode encodingMode)voidsetPublisherElementType(java.lang.Class<?> publisherElementType)Configure a type for a requestPublisherelements.voidsetPublisherElementTypeExpression(org.springframework.expression.Expression publisherElementTypeExpression)Configure a SpEL expression to evaluate a requestPublisherelements type at runtime against a request message.voidsetReplyPayloadToFlux(boolean replyPayloadToFlux)The boolean flag to identify if the reply payload should be as aFluxfrom the response body or as resolved value from theMonoof the response body.Methods inherited from class org.springframework.integration.http.outbound.AbstractHttpRequestExecutingMessageHandler
doInit, evaluateTypeFromExpression, getIntegrationPatternType, getReply, handleRequestMessage, isExpectReply, mapHeaders, setCharset, setEncodeUri, setExpectedResponseType, setExpectedResponseTypeExpression, setExpectReply, setExtractPayload, setHeaderMapper, setHttpMethod, setHttpMethodExpression, setTransferCookies, setTrustedSpel, setUriVariableExpressions, setUriVariablesExpressionMethods inherited from class org.springframework.integration.handler.AbstractReplyProducingMessageHandler
doInvokeAdvisedRequestHandler, getBeanClassLoader, getRequiresReply, handleMessageInternal, hasAdviceChain, onInit, setAdviceChain, setBeanClassLoader, setRequiresReplyMethods inherited from class org.springframework.integration.handler.AbstractMessageProducingHandler
addNotPropagatedHeaders, createOutputMessage, getNotPropagatedHeaders, getOutputChannel, isAsync, messageBuilderForReply, produceOutput, resolveErrorChannel, sendErrorMessage, sendOutput, sendOutputs, setAsync, setNotPropagatedHeaders, setOutputChannel, setOutputChannelName, setSendTimeout, shouldCopyRequestHeaders, shouldSplitOutput, updateNotPropagatedHeadersMethods inherited from class org.springframework.integration.handler.AbstractMessageHandler
handleMessage, onComplete, onError, onNext, onSubscribeMethods inherited from class org.springframework.integration.handler.MessageHandlerSupport
buildSendTimer, destroy, getManagedName, getManagedType, getMetricsCaptor, getOrder, getOverrides, isLoggingEnabled, registerMetricsCaptor, sendTimer, setLoggingEnabled, setManagedName, setManagedType, setOrder, setShouldTrack, shouldTrackMethods inherited from class org.springframework.integration.context.IntegrationObjectSupport
afterPropertiesSet, extractTypeIfPossible, generateId, getApplicationContext, getApplicationContextId, getBeanDescription, getBeanFactory, getBeanName, getChannelResolver, getComponentName, getConversionService, getExpression, getIntegrationProperties, getIntegrationProperty, getMessageBuilderFactory, getTaskScheduler, isInitialized, setApplicationContext, setBeanFactory, setBeanName, setChannelResolver, setComponentName, setConversionService, setMessageBuilderFactory, setPrimaryExpression, setTaskScheduler, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Constructor Details
-
WebFluxRequestExecutingMessageHandler
public WebFluxRequestExecutingMessageHandler(java.net.URI uri)Create a handler that will send requests to the provided URI.- Parameters:
uri- The URI.
-
WebFluxRequestExecutingMessageHandler
public WebFluxRequestExecutingMessageHandler(java.lang.String uri)Create a handler that will send requests to the provided URI.- Parameters:
uri- The URI.
-
WebFluxRequestExecutingMessageHandler
public WebFluxRequestExecutingMessageHandler(org.springframework.expression.Expression uriExpression)Create a handler that will send requests to the provided URI Expression.- Parameters:
uriExpression- The URI expression.
-
WebFluxRequestExecutingMessageHandler
public WebFluxRequestExecutingMessageHandler(java.lang.String uri, @Nullable org.springframework.web.reactive.function.client.WebClient webClient)Create a handler that will send requests to the provided URI using a provided WebClient.- Parameters:
uri- The URI.webClient- The WebClient to use.
-
WebFluxRequestExecutingMessageHandler
public WebFluxRequestExecutingMessageHandler(org.springframework.expression.Expression uriExpression, @Nullable org.springframework.web.reactive.function.client.WebClient webClient)Create a handler that will send requests to the provided URI using a provided WebClient.- Parameters:
uriExpression- A SpEL Expression that can be resolved against the message object andBeanFactory.webClient- The WebClient to use.
-
-
Method Details
-
setEncodingMode
public void setEncodingMode(org.springframework.web.util.DefaultUriBuilderFactory.EncodingMode encodingMode)- Overrides:
setEncodingModein classorg.springframework.integration.http.outbound.AbstractHttpRequestExecutingMessageHandler
-
setReplyPayloadToFlux
public void setReplyPayloadToFlux(boolean replyPayloadToFlux)The boolean flag to identify if the reply payload should be as aFluxfrom the response body or as resolved value from theMonoof the response body. Defaults tofalse- simple value is pushed downstream. Makes sense whenexpectedResponseTypeis configured.- Parameters:
replyPayloadToFlux- represent reply payload as aFluxor as a value from theMono.- Since:
- 5.0.1
- See Also:
AbstractHttpRequestExecutingMessageHandler.setExpectedResponseType(Class),AbstractHttpRequestExecutingMessageHandler.setExpectedResponseTypeExpression(Expression)
-
setBodyExtractor
public void setBodyExtractor(org.springframework.web.reactive.function.BodyExtractor<?,org.springframework.http.client.reactive.ClientHttpResponse> bodyExtractor)Specify aBodyExtractoras an alternative to theexpectedResponseTypeto allow to get low-level access to the receivedClientHttpResponse.- Parameters:
bodyExtractor- theBodyExtractorto use.- Since:
- 5.0.1
- See Also:
AbstractHttpRequestExecutingMessageHandler.setExpectedResponseType(Class),AbstractHttpRequestExecutingMessageHandler.setExpectedResponseTypeExpression(Expression)
-
setPublisherElementType
public void setPublisherElementType(java.lang.Class<?> publisherElementType)Configure a type for a requestPublisherelements.- Parameters:
publisherElementType- the type of the requestPublisherelements.- Since:
- 5.2
- See Also:
BodyInserters.fromPublisher(Publisher, Class)
-
setPublisherElementTypeExpression
public void setPublisherElementTypeExpression(org.springframework.expression.Expression publisherElementTypeExpression)Configure a SpEL expression to evaluate a requestPublisherelements type at runtime against a request message.- Parameters:
publisherElementTypeExpression- the expression to evaluate a type for the requestPublisherelements.- Since:
- 5.2
- See Also:
BodyInserters.fromPublisher(Publisher, Class),BodyInserters.fromPublisher(Publisher, ParameterizedTypeReference)
-
getComponentType
public java.lang.String getComponentType()- Specified by:
getComponentTypein interfaceorg.springframework.integration.support.context.NamedComponent- Overrides:
getComponentTypein classorg.springframework.integration.handler.MessageHandlerSupport
-
exchange
@Nullable protected java.lang.Object exchange(java.lang.Object uri, org.springframework.http.HttpMethod httpMethod, org.springframework.http.HttpEntity<?> httpRequest, java.lang.Object expectedResponseType, org.springframework.messaging.Message<?> requestMessage, java.util.Map<java.lang.String,?> uriVariables)- Specified by:
exchangein classorg.springframework.integration.http.outbound.AbstractHttpRequestExecutingMessageHandler
-