学习自 https://blog.csdn.net/qq_28289867/article/details/80423042
可以通过手动从ApplicationContext中获取bean来注入
在使用websocket的类中加入
//此处是解决无法注入的关键
private static ApplicationContext applicationContext;
//你要注入的service或者dao
private static RoomsMaps roomsMaps;
public static void setApplicationContext(ApplicationContext applicationContext) {
MeetingWebSocket.applicationContext = applicationContext;
//手动获取bean
roomsMaps = applicationContext.getBean(RoomsMaps.class);
}
然后在启动类中拿到applicationContext,加入以下代码
ConfigurableApplicationContext run = SpringApplication.run(DemoApplication.class, args);
//解决WebSocket不能注入的问题
//MeetingWebSocket为使用websocket的类
MeetingWebSocket.setApplicationContext((ApplicationContext)run);