Top Description Methods
org.springframework.messaging.simp.annotation

public @Interface SubscribeMapping

extends Annotation
Annotations
@Target:METHOD
@Retention:RUNTIME
@Documented
@Reflective:MessageMappingReflectiveProcessor
Imports
java.lang.annotation.Documented, .ElementType, .Retention, .RetentionPolicy, .Target, org.springframework.aot.hint.annotation.Reflective, org.springframework.messaging.handler.annotation.MessageMappingReflectiveProcessor

Annotation for mapping subscription messages onto specific handler methods based on the destination of a subscription. Supported with STOMP over WebSocket only (e.g. STOMP SUBSCRIBE frame).

This is a method-level annotation that can be combined with a type-level @MessageMapping.

Supports the same method arguments as @MessageMapping; however, subscription messages typically do not have a body.

The return value also follows the same rules as for @MessageMapping, except if the method is not annotated with SendTo or SendToUser, the message is sent directly back to the connected user and does not pass through the message broker. This is useful for implementing a request-reply pattern.

Note

When using controller interfaces (e.g. for AOP proxying), make sure to consistently put all your mapping annotations - such as @MessageMapping and @SubscribeMapping - on the controller interface rather than on the implementation class.

Author
Rossen Stoyanchev
Since
4.0
See Also
org.springframework.messaging.handler.annotation.MessageMapping, org.springframework.messaging.handler.annotation.SendTo, org.springframework.messaging.simp.annotation.SendToUser

Method Summary

Modifier and TypeMethod and Description
public String[]
value()

Destination-based mapping expressed by this annotation.

Inherited from java.lang.annotation.Annotation:
annotationTypeequalshashCodetoString

Method Detail

valueback to summary
public String[] value()

Destination-based mapping expressed by this annotation.

This is the destination of the STOMP message (e.g. "/positions"). Ant-style path patterns (e.g. "/price.stock.*") and path template variables (e.g. "/price.stock.{ticker}") are also supported.