在Spring Websocket实现中,通常有一个以硬编码方式为websocket通信指定处理程序的示例,例如在教程https://spring.io/guides/gs/messaging-stomp-websocket/
中@Controller
public class GreetingController {
@MessageMapping("/hello")
@SendTo("/topic/greetings")
public Greeting greeting(HelloMessage message) throws Exception {
Thread.sleep(3000); // simulated delay
return new Greeting("Hello, " + message.getName() + "!");
}
}
但是,我是否可以创建一些用于处理消息的类并在运行时定义它们的消息映射?我觉得有一个特殊的设置代码,它将MessageMappings与处理程序类/方法相匹配,可能有助于将控制器连接到非硬编码的主题,但是例如从配置文件中读取。这还允许启用/禁用选择消息处理程序并将处理程序列表保存在一个位置。