public class WebFluxRequestExecutingMessageHandler extends AbstractHttpRequestExecutingMessageHandler
MessageHandler
implementation that executes HTTP requests by delegating
to a Reactive WebClient
instance.HttpRequestExecutingMessageHandler
AbstractReplyProducingMessageHandler.RequestHandler
IntegrationManagement.ManagementOverrides
messagingTemplate
EXPRESSION_PARSER, logger
METER_PREFIX, RECEIVE_COUNTER_NAME, SEND_TIMER_NAME
Constructor and Description |
---|
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.
|
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.
|
Modifier and Type | Method and Description |
---|---|
protected java.lang.Object |
exchange(java.util.function.Supplier<java.net.URI> uriSupplier,
org.springframework.http.HttpMethod httpMethod,
org.springframework.http.HttpEntity<?> httpRequest,
java.lang.Object expectedResponseType,
org.springframework.messaging.Message<?> requestMessage) |
java.lang.String |
getComponentType()
Subclasses may implement this method to provide component type information.
|
void |
setBodyExtractor(org.springframework.web.reactive.function.BodyExtractor<?,org.springframework.http.client.reactive.ClientHttpResponse> bodyExtractor)
Specify a
BodyExtractor as an alternative to the expectedResponseType
to allow to get low-level access to the received ClientHttpResponse . |
void |
setReplyPayloadToFlux(boolean replyPayloadToFlux)
The boolean flag to identify if the reply payload should be as a
Flux from the response body
or as resolved value from the Mono of the response body. |
doInit, getReply, handleRequestMessage, isExpectReply, mapHeaders, setCharset, setEncodeUri, setExpectedResponseType, setExpectedResponseTypeExpression, setExpectReply, setExtractPayload, setHeaderMapper, setHttpMethod, setHttpMethodExpression, setTransferCookies, setTrustedSpel, setUriVariableExpressions, setUriVariablesExpression
doInvokeAdvisedRequestHandler, getRequiresReply, handleMessageInternal, hasAdviceChain, onInit, setAdviceChain, setBeanClassLoader, setRequiresReply
addNotPropagatedHeaders, createOutputMessage, getNotPropagatedHeaders, getOutputChannel, isAsync, produceOutput, resolveErrorChannel, sendErrorMessage, sendOutput, sendOutputs, setAsync, setNotPropagatedHeaders, setOutputChannel, setOutputChannelName, setSendTimeout, shouldCopyRequestHeaders, shouldSplitOutput, updateNotPropagatedHeaders
configureMetrics, getActiveCount, getActiveCountLong, getDuration, getErrorCount, getErrorCountLong, getHandleCount, getHandleCountLong, getManagedName, getManagedType, getMaxDuration, getMeanDuration, getMinDuration, getOrder, getOverrides, getStandardDeviationDuration, handleMessage, isCountsEnabled, isLoggingEnabled, isStatsEnabled, onComplete, onError, onNext, onSubscribe, registerMetricsCaptor, reset, setCountsEnabled, setLoggingEnabled, setManagedName, setManagedType, setOrder, setShouldTrack, setStatsEnabled
afterPropertiesSet, extractTypeIfPossible, getApplicationContext, getApplicationContextId, getBeanFactory, getChannelResolver, getComponentName, getConversionService, getExpression, getIntegrationProperties, getIntegrationProperty, getMessageBuilderFactory, getTaskScheduler, setApplicationContext, setBeanFactory, setBeanName, setChannelResolver, setComponentName, setConversionService, setMessageBuilderFactory, setPrimaryExpression, setTaskScheduler, toString
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getComponentName
public WebFluxRequestExecutingMessageHandler(java.net.URI uri)
uri
- The URI.public WebFluxRequestExecutingMessageHandler(java.lang.String uri)
uri
- The URI.public WebFluxRequestExecutingMessageHandler(org.springframework.expression.Expression uriExpression)
uriExpression
- The URI expression.public WebFluxRequestExecutingMessageHandler(java.lang.String uri, org.springframework.web.reactive.function.client.WebClient webClient)
uri
- The URI.webClient
- The WebClient to use.public WebFluxRequestExecutingMessageHandler(org.springframework.expression.Expression uriExpression, org.springframework.web.reactive.function.client.WebClient webClient)
uriExpression
- A SpEL Expression that can be resolved against the message object and
BeanFactory
.webClient
- The WebClient to use.public void setReplyPayloadToFlux(boolean replyPayloadToFlux)
Flux
from the response body
or as resolved value from the Mono
of the response body.
Defaults to false
- simple value is pushed downstream.
Makes sense when expectedResponseType
is configured.replyPayloadToFlux
- represent reply payload as a Flux
or as a value from the Mono
.AbstractHttpRequestExecutingMessageHandler.setExpectedResponseType(Class)
,
AbstractHttpRequestExecutingMessageHandler.setExpectedResponseTypeExpression(Expression)
public void setBodyExtractor(org.springframework.web.reactive.function.BodyExtractor<?,org.springframework.http.client.reactive.ClientHttpResponse> bodyExtractor)
BodyExtractor
as an alternative to the expectedResponseType
to allow to get low-level access to the received ClientHttpResponse
.bodyExtractor
- the BodyExtractor
to use.AbstractHttpRequestExecutingMessageHandler.setExpectedResponseType(Class)
,
AbstractHttpRequestExecutingMessageHandler.setExpectedResponseTypeExpression(Expression)
public java.lang.String getComponentType()
IntegrationObjectSupport
getComponentType
in interface NamedComponent
getComponentType
in class AbstractMessageHandler
protected java.lang.Object exchange(java.util.function.Supplier<java.net.URI> uriSupplier, org.springframework.http.HttpMethod httpMethod, org.springframework.http.HttpEntity<?> httpRequest, java.lang.Object expectedResponseType, org.springframework.messaging.Message<?> requestMessage)
exchange
in class AbstractHttpRequestExecutingMessageHandler