代码地址:https://gitee.com/yixun0623/springboot-socket

WebSocket注入Service或者Mapper

在socketServer类中将要注入的Service或者Mapper声明成静态变量

@ServerEndpoint("/mapOfBus")
@Component
@Slf4j
public class MapOfBusSocket {

    public static IMemberService memberService;
}

在socketConfig类中注入相应的Service或者Mapper

@Configuration
public class WebsocketConfiguration {

    @Bean
    public ServerEndpointExporter serverEndpointExporter() {
        return new ServerEndpointExporter();
    }

    @Autowired
    public void setSenderService(IMemberService memberService) {
        MapOfBusSocket.memberService = memberService;
    }
}

WebSocket 和 SpringBoot项目单元测试、定时器的冲突问题

SpringBoot项目单元测试

@SpringBootTest 注解增加 webEnvironment 参数

@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)

定时器的冲突问题

增加一个配置类 ScheduledConfig

/**
 * @author 萧一旬
 * @date Create in 16:35 2020/9/29
 */

@Configuration
public class ScheduledConfig {

    @Bean
    public TaskScheduler taskScheduler() {
        ThreadPoolTaskScheduler scheduling = new ThreadPoolTaskScheduler();
        scheduling.setPoolSize(10);
        scheduling.initialize();
        return scheduling;
    }
}