springboot集成websocket时在server文件里无法使用@autowired自动注入

  1. 在运行的时候报空指针异常,发现使用autowired自动注入没有起作用;
  2. 原因:spring容器管理的是单例的,他只会注入一次,而websocket是多对象的,当有新的用户使用的时候,他就会新创建一个websocket对象,这就导致了用户创建的websocket对象都不能注入对象了,所以在运行的时候就会发生注入对象为null的情况;
  3. 解决方法:把注入的对象声明为静态对象,例如
    privat static Service service;
    @autowired
    public void setService(Service service){
          WebSocketServer.service = service;
    }
    
posted @ 2020-12-01 15:46  meng_zhao  阅读(652)  评论(0编辑  收藏  举报