解决方案:
static OpLogService opLogService;
static UserService userService;
@Autowired
public void setOpLogService(OpLogService opLogService) {
WebSocketServer.opLogService = opLogService;
}
@Autowired
public void setUserService(UserService userService) {
WebSocketServer.userService = userService;
}
原因:
spring管理的都是单例(singleton),和 websocket (多对象)相冲突。
因为websocket是多实例单线程的,而websocket中的对象在@Autowried时,只有整个项目启动时会注入,而之后新的websocket实例都不会再次注入,故websocket上@Autowried的bean是会为null的