Class PublishSubscribeAmqpChannel
java.lang.Object
org.springframework.integration.context.IntegrationObjectSupport
org.springframework.integration.channel.AbstractMessageChannel
org.springframework.integration.amqp.channel.AbstractAmqpChannel
org.springframework.integration.amqp.channel.PublishSubscribeAmqpChannel
- All Implemented Interfaces:
org.springframework.amqp.rabbit.connection.ConnectionListener,org.springframework.beans.factory.Aware,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.context.Lifecycle,org.springframework.context.Phased,org.springframework.context.SmartLifecycle,org.springframework.integration.channel.BroadcastCapableChannel,org.springframework.integration.context.ExpressionCapable,org.springframework.integration.IntegrationPattern,org.springframework.integration.support.context.NamedComponent,org.springframework.integration.support.management.IntegrationManagement,org.springframework.integration.support.management.ManageableLifecycle,org.springframework.integration.support.management.ManageableSmartLifecycle,org.springframework.integration.support.management.TrackableComponent,org.springframework.messaging.MessageChannel,org.springframework.messaging.SubscribableChannel,org.springframework.messaging.support.InterceptableChannel
public class PublishSubscribeAmqpChannel
extends AbstractAmqpChannel
implements org.springframework.integration.channel.BroadcastCapableChannel
The
AbstractSubscribableAmqpChannel extension for pub-sub semantics based on the FanoutExchange.- Since:
- 2.1
-
Nested Class Summary
Nested classes/interfaces inherited from class org.springframework.integration.channel.AbstractMessageChannel
org.springframework.integration.channel.AbstractMessageChannel.ChannelInterceptorListNested classes/interfaces inherited from interface org.springframework.integration.support.management.IntegrationManagement
org.springframework.integration.support.management.IntegrationManagement.ManagementOverrides -
Field Summary
Fields inherited from class org.springframework.integration.channel.AbstractMessageChannel
interceptors, metersFields 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.messaging.MessageChannel
INDEFINITE_TIMEOUTFields inherited from interface org.springframework.context.SmartLifecycle
DEFAULT_PHASE -
Constructor Summary
ConstructorsConstructorDescriptionPublishSubscribeAmqpChannel(String channelName, org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer container, org.springframework.amqp.core.AmqpTemplate amqpTemplate) Construct an instance with the supplied name, container and template; default header mappers will be used if the message is mapped.PublishSubscribeAmqpChannel(String channelName, org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer container, org.springframework.amqp.core.AmqpTemplate amqpTemplate, AmqpHeaderMapper outboundMapper, AmqpHeaderMapper inboundMapper) Construct an instance with the supplied name, container and template; default header mappers will be used if the message is mapped. -
Method Summary
Modifier and TypeMethodDescriptionprotected org.springframework.integration.dispatcher.AbstractDispatchervoiddestroy()protected voidprotected StringSubclasses may override this method to return an Exchange name.intgetPhase()booleanbooleanprotected StringobtainQueueName(String channelName) voidonInit()voidsetExchange(org.springframework.amqp.core.FanoutExchange exchange) Configure the FanoutExchange instance.voidsetMaxSubscribers(int maxSubscribers) Specify the maximum number of subscribers supported by the channel's dispatcher (if it is anAbstractDispatcher).voidstart()voidstop()voidbooleansubscribe(org.springframework.messaging.MessageHandler handler) booleanunsubscribe(org.springframework.messaging.MessageHandler handler) Methods inherited from class org.springframework.integration.amqp.channel.AbstractAmqpChannel
doSend, getAdmin, getAmqpTemplate, getConnectionFactory, getInboundHeaderMapper, getRabbitTemplate, getRoutingKey, isExtractPayload, isLoggingEnabled, onClose, onCreate, setAdmin, setConnectionFactory, setDefaultDeliveryMode, setExtractPayload, setHeadersMappedLast, setLoggingEnabledMethods inherited from class org.springframework.integration.channel.AbstractMessageChannel
addInterceptor, addInterceptor, getComponentType, getFullChannelName, getIChannelInterceptorList, getIntegrationPatternType, getInterceptors, getMetricsCaptor, getOverrides, registerMetricsCaptor, removeInterceptor, removeInterceptor, send, send, setDatatypes, setInterceptors, setMessageConverter, setShouldTrackMethods 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, waitMethods inherited from interface org.springframework.integration.channel.BroadcastCapableChannel
isBroadcastMethods inherited from interface org.springframework.amqp.rabbit.connection.ConnectionListener
onFailed, onShutDownMethods inherited from interface org.springframework.integration.support.management.IntegrationManagement
getManagedName, getManagedType, getThisAs, registerObservationRegistry, setManagedName, setManagedTypeMethods inherited from interface org.springframework.messaging.MessageChannel
send, sendMethods inherited from interface org.springframework.integration.support.context.NamedComponent
getBeanName, getComponentNameMethods inherited from interface org.springframework.messaging.SubscribableChannel
subscribe, unsubscribe
-
Constructor Details
-
PublishSubscribeAmqpChannel
public PublishSubscribeAmqpChannel(String channelName, org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer container, org.springframework.amqp.core.AmqpTemplate amqpTemplate) Construct an instance with the supplied name, container and template; default header mappers will be used if the message is mapped.- Parameters:
channelName- the channel name.container- the container.amqpTemplate- the template.- See Also:
-
PublishSubscribeAmqpChannel
public PublishSubscribeAmqpChannel(String channelName, org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer container, org.springframework.amqp.core.AmqpTemplate amqpTemplate, AmqpHeaderMapper outboundMapper, AmqpHeaderMapper inboundMapper) Construct an instance with the supplied name, container and template; default header mappers will be used if the message is mapped.- Parameters:
channelName- the channel name.container- the container.amqpTemplate- the templateoutboundMapper- the outbound mapper.inboundMapper- the inbound mapper.- Since:
- 4.3
- See Also:
-
-
Method Details
-
setExchange
public void setExchange(org.springframework.amqp.core.FanoutExchange exchange) Configure the FanoutExchange instance. If this is not provided, then a FanoutExchange will be declared implicitly, and its name will be the same as the channel name prefixed by "si.fanout.". In either case, an effectively anonymous Queue will be declared automatically.- Parameters:
exchange- The fanout exchange.
-
getExchangeName
Description copied from class:AbstractAmqpChannelSubclasses may override this method to return an Exchange name. By default, Messages will be sent to the no-name Direct Exchange.- Overrides:
getExchangeNamein classAbstractAmqpChannel- Returns:
- The exchange name.
-
obtainQueueName
-
createDispatcher
protected org.springframework.integration.dispatcher.AbstractDispatcher createDispatcher() -
doDeclares
protected void doDeclares()- Specified by:
doDeclaresin classAbstractAmqpChannel
-
setMaxSubscribers
public void setMaxSubscribers(int maxSubscribers) Specify the maximum number of subscribers supported by the channel's dispatcher (if it is anAbstractDispatcher).- Parameters:
maxSubscribers- The maximum number of subscribers allowed.
-
subscribe
public boolean subscribe(org.springframework.messaging.MessageHandler handler) - Specified by:
subscribein interfaceorg.springframework.messaging.SubscribableChannel
-
unsubscribe
public boolean unsubscribe(org.springframework.messaging.MessageHandler handler) - Specified by:
unsubscribein interfaceorg.springframework.messaging.SubscribableChannel
-
onInit
public void onInit()- Overrides:
onInitin classAbstractAmqpChannel
-
isAutoStartup
public boolean isAutoStartup()- Specified by:
isAutoStartupin interfaceorg.springframework.context.SmartLifecycle
-
getPhase
public int getPhase()- Specified by:
getPhasein interfaceorg.springframework.context.Phased- Specified by:
getPhasein interfaceorg.springframework.context.SmartLifecycle
-
isRunning
public boolean isRunning()- Specified by:
isRunningin interfaceorg.springframework.context.Lifecycle- Specified by:
isRunningin interfaceorg.springframework.integration.support.management.ManageableLifecycle
-
start
public void start()- Specified by:
startin interfaceorg.springframework.context.Lifecycle- Specified by:
startin interfaceorg.springframework.integration.support.management.ManageableLifecycle
-
stop
public void stop()- Specified by:
stopin interfaceorg.springframework.context.Lifecycle- Specified by:
stopin interfaceorg.springframework.integration.support.management.ManageableLifecycle
-
stop
- Specified by:
stopin interfaceorg.springframework.context.SmartLifecycle
-
destroy
public void destroy()- Specified by:
destroyin interfaceorg.springframework.beans.factory.DisposableBean- Specified by:
destroyin interfaceorg.springframework.integration.support.management.IntegrationManagement- Overrides:
destroyin classAbstractAmqpChannel
-