spring控制器中的多线程

spring控制器中的多线程,spring,multithreading,spring-boot,spring-websocket,Spring,Multithreading,Spring Boot,Spring Websocket,我正在写一些WebSocket在spring boot上的应用程序。前端有发送请求到我的控制器,还有发送消息到另一个用户,下面我显示控制器方法: private MessagingService messagingService; private DaoMessageService daoMessageService; public MessageController(MessagingService messagingService, DaoMessageService daoMessage

我正在写一些WebSocket在spring boot上的应用程序。前端有发送请求到我的控制器,还有发送消息到另一个用户,下面我显示控制器方法:

private MessagingService messagingService;
private DaoMessageService daoMessageService;

public MessageController(MessagingService messagingService, DaoMessageService daoMessageService){
    this.messagingService = messagingService;
    this.daoMessageService = daoMessageService;
}

@MessageMapping("/hello")
public void sendMessage(MessageDto messageDto, Principal principal) throws InterruptedException {
    String recipient = messageDto.getRecipient();
    String user = principal.getName();

    Message message = new Message(messageDto.getContent());
    message.setSenderName(user);
    message.setRecipient(recipient);

    daoMessageService.saveMessageForUser(user, message);

    messagingService.convertAndSendToUser(recipient, message);
}

我的问题是:如果许多用户将写入消息,那么会为这些消息创建一些类似的队列,等待该控制器处理吗?或者可能存在为请求或会话范围创建一个控制器的情况?如果没有,如何异步使用它?我哪儿都看不懂

对我来说,控制器很好。我希望没有人排队。同一个方法由不同的线程输入两次,每个线程正确地调用逻辑。为什么要排队?我想当多个用户同时发送消息时,总会有一个控制器实例,那么会发生什么呢?它们可以同时处理所有消息,是吗?您可能应该检查DefferedResult、Callable和@Async。谢谢:)我会检查:)现在我现在!!!每个请求都在新线程中处理:“clientInboundChannel-4 clientInboundChannel-6”