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) |
org.springframework.core.convert.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 . |
org.springframework.util.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(org.springframework.core.convert.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(org.springframework.util.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(org.springframework.core.convert.ConversionService conversionService)
ConversionService
to use when resolving method arguments, for
example message header values.
By default an instance of DefaultFormattingConversionService
is used.
public org.springframework.core.convert.ConversionService getConversionService()
ConversionService
.public void setPathMatcher(org.springframework.util.PathMatcher pathMatcher)
By default AntPathMatcher is used
public org.springframework.util.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>