错误写法
@ClientEndpoint
@Component
public class WebSocket{
private static Map<String, String> sysUserMap = new HashMap<String, String>();
@Autowired
private ISysUserService sysUserService;
@OnOpen
public void onOpen(Session session, @PathParam(value = "userId") String userId) {
// 你的业务逻辑
SysUser sysUser = sysUserService.getById(this.userId); // 这里sysUserService 变成了null
}
}
正确写法
@RestController
@Slf4j
@ServerEndpoint("/websocket/{userId}") //此注解相当于设置访问URL
public class WebSocket{
private static Map<String, String> sysUserMap = new HashMap<String, String>();
private ISysUserService sysUserService;
@Autowired
public void setRepository(ISysUserService sysUserService) {
WebSocket.sysUserService = sysUserService;
}
@OnOpen
public void onOpen(Session session, @PathParam(value = "userId") String userId) {
// 你的业务逻辑
SysUser sysUser = sysUserService.getById(this.userId); // 这里sysUserService 就正常了
}
}
亲测有效 感觉写法有点诡异,希望有大佬可以帮忙指出。
版权声明:本文为weixin_44647098原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。