public abstract class AbstractMessageBrokerConfiguration extends Object implements org.springframework.context.ApplicationContextAware
clientInboundChannel(org.springframework.core.task.TaskExecutor)
and clientOutboundChannel(org.springframework.core.task.TaskExecutor)
deliver
messages to and from remote clients to several message handlers such as the
following.
simpAnnotationMethodMessageHandler(org.springframework.messaging.support.AbstractSubscribableChannel, org.springframework.messaging.support.AbstractSubscribableChannel, org.springframework.messaging.simp.SimpMessagingTemplate, org.springframework.messaging.converter.CompositeMessageConverter)
simpleBrokerMessageHandler(org.springframework.messaging.support.AbstractSubscribableChannel, org.springframework.messaging.support.AbstractSubscribableChannel, org.springframework.messaging.support.AbstractSubscribableChannel, org.springframework.messaging.simp.user.UserDestinationResolver)
stompBrokerRelayMessageHandler(org.springframework.messaging.support.AbstractSubscribableChannel, org.springframework.messaging.support.AbstractSubscribableChannel, org.springframework.messaging.support.AbstractSubscribableChannel, org.springframework.messaging.simp.user.UserDestinationMessageHandler, org.springframework.messaging.MessageHandler, org.springframework.messaging.simp.user.UserDestinationResolver)
userDestinationMessageHandler(org.springframework.messaging.support.AbstractSubscribableChannel, org.springframework.messaging.support.AbstractSubscribableChannel, org.springframework.messaging.support.AbstractSubscribableChannel, org.springframework.messaging.simp.user.UserDestinationResolver)
brokerChannel(org.springframework.messaging.support.AbstractSubscribableChannel, org.springframework.messaging.support.AbstractSubscribableChannel, org.springframework.core.task.TaskExecutor)
delivers messages from within the application to the
respective message handlers. brokerMessagingTemplate(org.springframework.messaging.support.AbstractSubscribableChannel, org.springframework.messaging.support.AbstractSubscribableChannel, org.springframework.messaging.support.AbstractSubscribableChannel, org.springframework.messaging.converter.CompositeMessageConverter)
can be injected
into any application component to send messages.
Subclasses are responsible for the parts of the configuration that feed messages to and from the client inbound/outbound channels (e.g. STOMP over WebSocket).
Modifier | Constructor and Description |
---|---|
protected |
AbstractMessageBrokerConfiguration()
Protected constructor.
|
Modifier and Type | Method and Description |
---|---|
protected void |
addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) |
protected void |
addReturnValueHandlers(List<HandlerMethodReturnValueHandler> returnValueHandlers) |
AbstractSubscribableChannel |
brokerChannel(AbstractSubscribableChannel clientInboundChannel,
AbstractSubscribableChannel clientOutboundChannel,
org.springframework.core.task.TaskExecutor executor) |
org.springframework.core.task.TaskExecutor |
brokerChannelExecutor(AbstractSubscribableChannel clientInboundChannel,
AbstractSubscribableChannel clientOutboundChannel) |
CompositeMessageConverter |
brokerMessageConverter() |
SimpMessagingTemplate |
brokerMessagingTemplate(AbstractSubscribableChannel brokerChannel,
AbstractSubscribableChannel clientInboundChannel,
AbstractSubscribableChannel clientOutboundChannel,
CompositeMessageConverter brokerMessageConverter) |
AbstractSubscribableChannel |
clientInboundChannel(org.springframework.core.task.TaskExecutor executor) |
org.springframework.core.task.TaskExecutor |
clientInboundChannelExecutor() |
AbstractSubscribableChannel |
clientOutboundChannel(org.springframework.core.task.TaskExecutor executor) |
org.springframework.core.task.TaskExecutor |
clientOutboundChannelExecutor() |
protected void |
configureClientInboundChannel(ChannelRegistration registration)
A hook for subclasses to customize the message channel for inbound messages
from WebSocket clients.
|
protected void |
configureClientOutboundChannel(ChannelRegistration registration)
A hook for subclasses to customize the message channel for messages from
the application or message broker to WebSocket clients.
|
protected void |
configureMessageBroker(MessageBrokerRegistry registry)
A hook for subclasses to customize message broker configuration through the
provided
MessageBrokerRegistry instance. |
protected boolean |
configureMessageConverters(List<MessageConverter> messageConverters)
Override this method to add custom message converters.
|
protected SimpAnnotationMethodMessageHandler |
createAnnotationMethodMessageHandler(AbstractSubscribableChannel clientInboundChannel,
AbstractSubscribableChannel clientOutboundChannel,
SimpMessagingTemplate brokerMessagingTemplate)
Protected method for plugging in a custom subclass of
SimpAnnotationMethodMessageHandler . |
protected MappingJackson2MessageConverter |
createJacksonConverter() |
protected SimpUserRegistry |
createLocalUserRegistry()
Deprecated.
as of 5.1 in favor of
createLocalUserRegistry(Integer) |
protected abstract SimpUserRegistry |
createLocalUserRegistry(Integer order)
Create the user registry that provides access to local users.
|
org.springframework.context.ApplicationContext |
getApplicationContext() |
protected MessageBrokerRegistry |
getBrokerRegistry(AbstractSubscribableChannel clientInboundChannel,
AbstractSubscribableChannel clientOutboundChannel)
An accessor for the
MessageBrokerRegistry that ensures its one-time creation
and initialization through configureMessageBroker(MessageBrokerRegistry) . |
protected ChannelRegistration |
getClientInboundChannelRegistration() |
protected ChannelRegistration |
getClientOutboundChannelRegistration() |
org.springframework.util.PathMatcher |
getPathMatcher(AbstractSubscribableChannel clientInboundChannel,
AbstractSubscribableChannel clientOutboundChannel)
Provide access to the configured PatchMatcher for access from other
configuration classes.
|
org.springframework.validation.Validator |
getValidator()
Override this method to provide a custom
Validator . |
org.springframework.scheduling.TaskScheduler |
messageBrokerTaskScheduler() |
void |
setApplicationContext(org.springframework.context.ApplicationContext applicationContext) |
SimpAnnotationMethodMessageHandler |
simpAnnotationMethodMessageHandler(AbstractSubscribableChannel clientInboundChannel,
AbstractSubscribableChannel clientOutboundChannel,
SimpMessagingTemplate brokerMessagingTemplate,
CompositeMessageConverter brokerMessageConverter) |
AbstractBrokerMessageHandler |
simpleBrokerMessageHandler(AbstractSubscribableChannel clientInboundChannel,
AbstractSubscribableChannel clientOutboundChannel,
AbstractSubscribableChannel brokerChannel,
UserDestinationResolver userDestinationResolver) |
protected org.springframework.validation.Validator |
simpValidator()
Return an
Validator instance for
validating @Payload method arguments. |
AbstractBrokerMessageHandler |
stompBrokerRelayMessageHandler(AbstractSubscribableChannel clientInboundChannel,
AbstractSubscribableChannel clientOutboundChannel,
AbstractSubscribableChannel brokerChannel,
UserDestinationMessageHandler userDestinationMessageHandler,
MessageHandler userRegistryMessageHandler,
UserDestinationResolver userDestinationResolver) |
UserDestinationMessageHandler |
userDestinationMessageHandler(AbstractSubscribableChannel clientInboundChannel,
AbstractSubscribableChannel clientOutboundChannel,
AbstractSubscribableChannel brokerChannel,
UserDestinationResolver userDestinationResolver) |
UserDestinationResolver |
userDestinationResolver(SimpUserRegistry userRegistry,
AbstractSubscribableChannel clientInboundChannel,
AbstractSubscribableChannel clientOutboundChannel) |
SimpUserRegistry |
userRegistry(AbstractSubscribableChannel clientInboundChannel,
AbstractSubscribableChannel clientOutboundChannel) |
MessageHandler |
userRegistryMessageHandler(AbstractSubscribableChannel clientInboundChannel,
AbstractSubscribableChannel clientOutboundChannel,
SimpUserRegistry userRegistry,
SimpMessagingTemplate brokerMessagingTemplate,
org.springframework.scheduling.TaskScheduler scheduler) |
protected AbstractMessageBrokerConfiguration()
public void setApplicationContext(@Nullable org.springframework.context.ApplicationContext applicationContext)
setApplicationContext
in interface org.springframework.context.ApplicationContextAware
@Nullable public org.springframework.context.ApplicationContext getApplicationContext()
@Bean public AbstractSubscribableChannel clientInboundChannel(@Qualifier(value="clientInboundChannelExecutor") org.springframework.core.task.TaskExecutor executor)
@Bean public org.springframework.core.task.TaskExecutor clientInboundChannelExecutor()
protected final ChannelRegistration getClientInboundChannelRegistration()
protected void configureClientInboundChannel(ChannelRegistration registration)
@Bean public AbstractSubscribableChannel clientOutboundChannel(@Qualifier(value="clientOutboundChannelExecutor") org.springframework.core.task.TaskExecutor executor)
@Bean public org.springframework.core.task.TaskExecutor clientOutboundChannelExecutor()
protected final ChannelRegistration getClientOutboundChannelRegistration()
protected void configureClientOutboundChannel(ChannelRegistration registration)
@Bean public AbstractSubscribableChannel brokerChannel(AbstractSubscribableChannel clientInboundChannel, AbstractSubscribableChannel clientOutboundChannel, @Qualifier(value="brokerChannelExecutor") org.springframework.core.task.TaskExecutor executor)
@Bean public org.springframework.core.task.TaskExecutor brokerChannelExecutor(AbstractSubscribableChannel clientInboundChannel, AbstractSubscribableChannel clientOutboundChannel)
protected final MessageBrokerRegistry getBrokerRegistry(AbstractSubscribableChannel clientInboundChannel, AbstractSubscribableChannel clientOutboundChannel)
MessageBrokerRegistry
that ensures its one-time creation
and initialization through configureMessageBroker(MessageBrokerRegistry)
.protected void configureMessageBroker(MessageBrokerRegistry registry)
MessageBrokerRegistry
instance.@Nullable public final org.springframework.util.PathMatcher getPathMatcher(AbstractSubscribableChannel clientInboundChannel, AbstractSubscribableChannel clientOutboundChannel)
@Bean public SimpAnnotationMethodMessageHandler simpAnnotationMethodMessageHandler(AbstractSubscribableChannel clientInboundChannel, AbstractSubscribableChannel clientOutboundChannel, SimpMessagingTemplate brokerMessagingTemplate, CompositeMessageConverter brokerMessageConverter)
protected SimpAnnotationMethodMessageHandler createAnnotationMethodMessageHandler(AbstractSubscribableChannel clientInboundChannel, AbstractSubscribableChannel clientOutboundChannel, SimpMessagingTemplate brokerMessagingTemplate)
SimpAnnotationMethodMessageHandler
.protected void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers)
protected void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> returnValueHandlers)
@Bean @Nullable public AbstractBrokerMessageHandler simpleBrokerMessageHandler(AbstractSubscribableChannel clientInboundChannel, AbstractSubscribableChannel clientOutboundChannel, AbstractSubscribableChannel brokerChannel, UserDestinationResolver userDestinationResolver)
@Bean @Nullable public AbstractBrokerMessageHandler stompBrokerRelayMessageHandler(AbstractSubscribableChannel clientInboundChannel, AbstractSubscribableChannel clientOutboundChannel, AbstractSubscribableChannel brokerChannel, UserDestinationMessageHandler userDestinationMessageHandler, @Nullable MessageHandler userRegistryMessageHandler, UserDestinationResolver userDestinationResolver)
@Bean public UserDestinationMessageHandler userDestinationMessageHandler(AbstractSubscribableChannel clientInboundChannel, AbstractSubscribableChannel clientOutboundChannel, AbstractSubscribableChannel brokerChannel, UserDestinationResolver userDestinationResolver)
@Bean @Nullable public MessageHandler userRegistryMessageHandler(AbstractSubscribableChannel clientInboundChannel, AbstractSubscribableChannel clientOutboundChannel, SimpUserRegistry userRegistry, SimpMessagingTemplate brokerMessagingTemplate, @Qualifier(value="messageBrokerTaskScheduler") org.springframework.scheduling.TaskScheduler scheduler)
@Bean(name={"messageBrokerTaskScheduler","messageBrokerSockJsTaskScheduler"}) public org.springframework.scheduling.TaskScheduler messageBrokerTaskScheduler()
@Bean public SimpMessagingTemplate brokerMessagingTemplate(AbstractSubscribableChannel brokerChannel, AbstractSubscribableChannel clientInboundChannel, AbstractSubscribableChannel clientOutboundChannel, CompositeMessageConverter brokerMessageConverter)
@Bean public CompositeMessageConverter brokerMessageConverter()
protected MappingJackson2MessageConverter createJacksonConverter()
protected boolean configureMessageConverters(List<MessageConverter> messageConverters)
messageConverters
- the list to add converters to, initially emptytrue
if default message converters should be added to list,
false
if no more converters should be added@Bean public UserDestinationResolver userDestinationResolver(SimpUserRegistry userRegistry, AbstractSubscribableChannel clientInboundChannel, AbstractSubscribableChannel clientOutboundChannel)
@Bean public SimpUserRegistry userRegistry(AbstractSubscribableChannel clientInboundChannel, AbstractSubscribableChannel clientOutboundChannel)
@Deprecated @Nullable protected SimpUserRegistry createLocalUserRegistry()
createLocalUserRegistry(Integer)
protected abstract SimpUserRegistry createLocalUserRegistry(@Nullable Integer order)
order
- the order to use as a SmartApplicationListener
.protected org.springframework.validation.Validator simpValidator()
Validator
instance for
validating @Payload
method arguments.
In order, this method tries to get a Validator instance:
OptionalValidatorFactoryBean
@Nullable public org.springframework.validation.Validator getValidator()
Validator
.