Class StoredProcOutboundGateway
- All Implemented Interfaces:
org.reactivestreams.Subscriber<Message<?>>,Aware,BeanClassLoaderAware,BeanFactoryAware,BeanNameAware,DisposableBean,InitializingBean,ApplicationContextAware,Ordered,ComponentSourceAware,ExpressionCapable,Orderable,MessageProducer,HeaderPropagationAware,IntegrationPattern,NamedComponent,IntegrationManagement,TrackableComponent,MessageHandler,reactor.core.CoreSubscriber<Message<?>>
- Direct Known Subclasses:
StoredProcOutboundGateway
AbstractReplyProducingMessageHandler implementation for performing
RDBMS stored procedures which return results.- Since:
- 2.1
- Author:
- Gunnar Hillert, Artem Bilan
-
Nested Class Summary
Nested classes/interfaces inherited from class org.springframework.integration.handler.AbstractReplyProducingMessageHandler
AbstractReplyProducingMessageHandler.RequestHandlerNested classes/interfaces inherited from interface org.springframework.integration.support.management.IntegrationManagement
IntegrationManagement.ManagementOverrides -
Field Summary
Fields inherited from class org.springframework.integration.handler.AbstractMessageProducingHandler
messagingTemplateFields inherited from class org.springframework.integration.context.IntegrationObjectSupport
EXPRESSION_PARSER, loggerFields inherited from interface org.springframework.integration.support.management.IntegrationManagement
METER_PREFIX, RECEIVE_COUNTER_NAME, SEND_TIMER_NAMEFields inherited from interface org.springframework.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE -
Constructor Summary
ConstructorsConstructorDescriptionStoredProcOutboundGateway(StoredProcExecutor storedProcExecutor) Constructor takingStoredProcExecutor. -
Method Summary
Modifier and TypeMethodDescriptionprotected voiddoInit()protected @Nullable ObjecthandleRequestMessage(Message<?> requestMessage) Subclasses must implement this method to handle the request Message.voidsetExpectSingleResult(boolean expectSingleResult) This parameter indicates that only one result object shall be returned from the Stored Procedure/Function Call.voidsetRequiresReply(boolean requiresReply) Flag whether a reply is required.Methods inherited from class org.springframework.integration.handler.AbstractReplyProducingMessageHandler
doInvokeAdvisedRequestHandler, getBeanClassLoader, getIntegrationPatternType, getRequiresReply, handleMessageInternal, hasAdviceChain, onInit, setAdviceChain, setBeanClassLoaderMethods inherited from class org.springframework.integration.handler.AbstractMessageProducingHandler
addNotPropagatedHeaders, createOutputMessage, getNotPropagatedHeaders, getOutputChannel, isAsync, messageBuilderForReply, produceOutput, resolveErrorChannel, sendErrorMessage, sendOutput, sendOutputs, setAsync, setNotPropagatedHeaders, setOutputChannel, setOutputChannelName, setSendTimeout, setupMessageProcessor, shouldCopyRequestHeaders, shouldSplitOutput, updateNotPropagatedHeadersMethods inherited from class org.springframework.integration.handler.AbstractMessageHandler
handleMessage, onComplete, onError, onNext, onSubscribe, setObservationConventionMethods inherited from class org.springframework.integration.handler.MessageHandlerSupport
buildSendTimer, destroy, getManagedName, getManagedType, getMetricsCaptor, getObservationRegistry, getOrder, getOverrides, isLoggingEnabled, isObserved, registerMetricsCaptor, registerObservationRegistry, sendTimer, setLoggingEnabled, setManagedName, setManagedType, setOrder, setShouldTrack, shouldTrackMethods inherited from class org.springframework.integration.context.IntegrationObjectSupport
afterPropertiesSet, extractTypeIfPossible, generateId, getApplicationContext, getApplicationContextId, getBeanDescription, getBeanFactory, getBeanName, getChannelResolver, getComponentDescription, getComponentName, getComponentSource, getConversionService, getExpression, getIntegrationProperties, getMessageBuilderFactory, getTaskScheduler, isInitialized, setApplicationContext, setBeanFactory, setBeanName, setChannelResolver, setComponentDescription, setComponentName, setComponentSource, setConversionService, setMessageBuilderFactory, setPrimaryExpression, setTaskScheduler, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface reactor.core.CoreSubscriber
currentContextMethods inherited from interface org.springframework.integration.support.management.IntegrationManagement
getThisAsMethods inherited from interface org.springframework.integration.support.context.NamedComponent
getBeanName, getComponentName
-
Constructor Details
-
StoredProcOutboundGateway
Constructor takingStoredProcExecutor.- Parameters:
storedProcExecutor- Must not be null.
-
-
Method Details
-
setRequiresReply
public void setRequiresReply(boolean requiresReply) Description copied from class:AbstractReplyProducingMessageHandlerFlag whether a reply is required. Iftruean incoming message MUST result in a reply message being sent. Iffalsean incoming message may result in a reply message being sent. Default is false.- Overrides:
setRequiresReplyin classAbstractReplyProducingMessageHandler- Parameters:
requiresReply- true if a reply is required.
-
setExpectSingleResult
public void setExpectSingleResult(boolean expectSingleResult) This parameter indicates that only one result object shall be returned from the Stored Procedure/Function Call. If set totrue, aresultMapthat contains only 1 element, will have that 1 element extracted and returned as payload.If the
resultMapcontains more than 1 element andexpectSingleResult == true, then aMessagingExceptionis thrown.Otherwise the complete
resultMapis returned as theMessagepayload.Important Note: Several databases such as H2 are not fully supported. The H2 database, for example, does not fully support the
CallableStatementsemantics and when executing function calls against H2, a result list is returned rather than a single value.Therefore, even if you set
expectSingleResult = true, you may end up with a collection being returned.When set to
true, asetRequiresReply(boolean)is called withtrueas well, indicating that exactly single result is expected andnullisn't appropriate value. AReplyRequiredExceptionis thrown in case ofnullresult.- Parameters:
expectSingleResult- true if a single result is expected.
-
getComponentType
- Specified by:
getComponentTypein interfaceNamedComponent- Overrides:
getComponentTypein classMessageHandlerSupport
-
doInit
protected void doInit()- Overrides:
doInitin classAbstractReplyProducingMessageHandler
-
handleRequestMessage
Description copied from class:AbstractReplyProducingMessageHandlerSubclasses must implement this method to handle the request Message. The return value may be a Message, a MessageBuilder, or any plain Object. The base class will handle the final creation of a reply Message from any of those starting points. If the return value is null, the Message flow will end here.- Specified by:
handleRequestMessagein classAbstractReplyProducingMessageHandler- Parameters:
requestMessage- The request message.- Returns:
- The result of handling the message, or
null.
-