在SpringBoot项目中使用WebSocket
的过程中有其他的业务操作需要注入其它接口来做相应的业务操作,但是在WebSocket
的Server
类中使用Autowired注解
无效,这样注入的对象就是空,在使用过程中会报空指针异常。
注释:上面说的WebSocket
的Server类
就是指被@ServerEndpoint
注解修饰的类
原因就是在spring容器
中管理的是单例的,他只会注入一次,而WebSocket
是多对象的,当有新的用户使用的时候,他就会新创建一个WebSocket
对象,这就导致了用户创建的WebSocket
对象都不能注入对象了,所以在运行的时候就会发生注入对象为null
的情况;
主要的原因就是Spring
容器管理的方式不能直接注入WebSocket
中的对象,所以需要调整一下注入方式。
把需要注入的对象
声明为静态对象,代码如下:
private static BaseWebSocketService baseWebSocketService;
@Autowired
public void setService(BaseWebSocketService baseWebSocketService){
WebSocketClient.baseWebSocketService = baseWebSocketService;
}
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有