public class SimpAnnotationMethodMessageHandler extends AbstractMethodMessageHandler<SimpMessageMappingInfo>
@SubscribeEvent
and
@MessageMapping
annotated methods.
Supports Ant-style path patterns as well as URI template variables in destinations.
logger, LOOKUP_DESTINATION_HEADER
Constructor and Description |
---|
SimpAnnotationMethodMessageHandler(SimpMessageSendingOperations brokerTemplate,
MessageChannel webSocketResponseChannel) |
Modifier and Type | Method and Description |
---|---|
protected AbstractExceptionHandlerMethodResolver |
createExceptionHandlerMethodResolverFor(Class<?> beanType) |
ConversionService |
getConversionService()
The configured
ConversionService . |
protected String |
getDestination(Message<?> message) |
protected Set<String> |
getDirectLookupDestinations(SimpMessageMappingInfo mapping)
Return destinations contained in the mapping that are not patterns and are
therefore suitable for direct lookups.
|
protected Comparator<SimpMessageMappingInfo> |
getMappingComparator(Message<?> message)
Return a comparator for sorting matching mappings.
|
protected SimpMessageMappingInfo |
getMappingForMethod(Method method,
Class<?> handlerType)
Provide the mapping for a handler method.
|
protected SimpMessageMappingInfo |
getMatchingMapping(SimpMessageMappingInfo mapping,
Message<?> message)
Check if a mapping matches the current message and return a possibly
new mapping with conditions relevant to the current request.
|
MessageConverter |
getMessageConverter()
Return the configured
MessageConverter . |
PathMatcher |
getPathMatcher()
Return the PathMatcher implementation to use for matching destinations
|
protected void |
handleMatch(SimpMessageMappingInfo mapping,
HandlerMethod handlerMethod,
String lookupDestination,
Message<?> message) |
protected void |
handleNoMatch(Set<SimpMessageMappingInfo> set,
String lookupDestination,
Message<?> message) |
protected List<HandlerMethodArgumentResolver> |
initArgumentResolvers()
Return the list of argument resolvers to use.
|
protected List<? extends HandlerMethodReturnValueHandler> |
initReturnValueHandlers()
Return the list of return value handlers to use.
|
protected boolean |
isHandler(Class<?> beanType)
Whether the given bean type should be introspected for messaging handling methods.
|
void |
setConversionService(ConversionService conversionService)
Configure a
ConversionService to use when resolving method arguments, for
example message header values. |
void |
setMessageConverter(MessageConverter converter)
Configure a
MessageConverter to use to convert the payload of a message
from serialize form with a specific MIME type to an Object matching the target
method parameter. |
void |
setPathMatcher(PathMatcher pathMatcher)
Set the PathMatcher implementation to use for matching destinations
against configured destination patterns.
|
afterPropertiesSet, createHandlerMethod, detectHandlerMethods, getApplicationContext, getArgumentResolvers, getCustomArgumentResolvers, getCustomReturnValueHandlers, getDestinationPrefixes, getHandlerMethods, getLookupDestination, getReturnValueHandlers, handleMessage, handleMessageInternal, processHandlerMethodException, registerHandlerMethod, setApplicationContext, setArgumentResolvers, setCustomArgumentResolvers, setCustomReturnValueHandlers, setDestinationPrefixes, setReturnValueHandlers
public SimpAnnotationMethodMessageHandler(SimpMessageSendingOperations brokerTemplate, MessageChannel webSocketResponseChannel)
brokerTemplate
- a messaging template to send application messages to the brokerwebSocketResponseChannel
- the channel for messages to WebSocket clientspublic void setMessageConverter(MessageConverter converter)
MessageConverter
to use to convert the payload of a message
from serialize form with a specific MIME type to an Object matching the target
method parameter. The converter is also used when sending message to the message
broker.CompositeMessageConverter
public MessageConverter getMessageConverter()
MessageConverter
.public void setConversionService(ConversionService conversionService)
ConversionService
to use when resolving method arguments, for
example message header values.
By default an instance of DefaultFormattingConversionService
is used.
public ConversionService getConversionService()
ConversionService
.public void setPathMatcher(PathMatcher pathMatcher)
By default AntPathMatcher is used
public PathMatcher getPathMatcher()
protected List<HandlerMethodArgumentResolver> initArgumentResolvers()
AbstractMethodMessageHandler
AbstractMethodMessageHandler.setArgumentResolvers(java.util.List)
.
Sub-classes should also take into account custom argument types configured via
AbstractMethodMessageHandler.setCustomArgumentResolvers(java.util.List)
.
initArgumentResolvers
in class AbstractMethodMessageHandler<SimpMessageMappingInfo>
protected List<? extends HandlerMethodReturnValueHandler> initReturnValueHandlers()
AbstractMethodMessageHandler
AbstractMethodMessageHandler.setReturnValueHandlers(java.util.List)
.
Sub-classes should also take into account custom return value types configured via
AbstractMethodMessageHandler.setCustomReturnValueHandlers(java.util.List)
.
initReturnValueHandlers
in class AbstractMethodMessageHandler<SimpMessageMappingInfo>
protected boolean isHandler(Class<?> beanType)
AbstractMethodMessageHandler
isHandler
in class AbstractMethodMessageHandler<SimpMessageMappingInfo>
protected SimpMessageMappingInfo getMappingForMethod(Method method, Class<?> handlerType)
AbstractMethodMessageHandler
getMappingForMethod
in class AbstractMethodMessageHandler<SimpMessageMappingInfo>
method
- the method to provide a mapping forhandlerType
- the handler type, possibly a sub-type of the method's declaring classnull
if the method is not mappedprotected Set<String> getDirectLookupDestinations(SimpMessageMappingInfo mapping)
AbstractMethodMessageHandler
getDirectLookupDestinations
in class AbstractMethodMessageHandler<SimpMessageMappingInfo>
protected String getDestination(Message<?> message)
getDestination
in class AbstractMethodMessageHandler<SimpMessageMappingInfo>
protected SimpMessageMappingInfo getMatchingMapping(SimpMessageMappingInfo mapping, Message<?> message)
AbstractMethodMessageHandler
getMatchingMapping
in class AbstractMethodMessageHandler<SimpMessageMappingInfo>
mapping
- the mapping to get a match formessage
- the message being handlednull
if there is no matchprotected Comparator<SimpMessageMappingInfo> getMappingComparator(Message<?> message)
AbstractMethodMessageHandler
getMappingComparator
in class AbstractMethodMessageHandler<SimpMessageMappingInfo>
message
- the current Messagenull
protected void handleMatch(SimpMessageMappingInfo mapping, HandlerMethod handlerMethod, String lookupDestination, Message<?> message)
handleMatch
in class AbstractMethodMessageHandler<SimpMessageMappingInfo>
protected void handleNoMatch(Set<SimpMessageMappingInfo> set, String lookupDestination, Message<?> message)
handleNoMatch
in class AbstractMethodMessageHandler<SimpMessageMappingInfo>
protected AbstractExceptionHandlerMethodResolver createExceptionHandlerMethodResolverFor(Class<?> beanType)
createExceptionHandlerMethodResolverFor
in class AbstractMethodMessageHandler<SimpMessageMappingInfo>