在tomcat8和spring4下搭建了websocket的聊天室,但是却存在一个问题,websocket服务端无法注入业务处理的所需要的service bean,初步怀疑是加载顺序的问题。

  一:不能处理之前的关键代码如下

   import javax.websocket.server.ServerEndpoint;

   @ServerEndpoint(value = "/chat/video")

   public class ChatWebSocketHandler{

    //省略其他与本文无关!!!!

@Autowired

private IChatLecture iChatLecture;

   

   @OnMessage

    public void onMessage(String message, Session session) {

    //业务处理:注 此处的bean注入每次都是空指针,要命,百度搜索无果!!

    iChatLecture.pushContent.....do something 

    

   }

   //其他省略!!!!

  }

  二:彻底解决开篇中问题

   import javax.websocket.server.ServerEndpoint;

   import org.springframework.web.socket.server.standard.SpringConfigurator;

   @ServerEndpoint(value = "/chat/video",configurator = SpringConfigurator.class)

   public class ChatWebSocketHandler{

   //省略其他与本文无关!!!

    private final IChatLecture iChatLecture;  

    @Autowired  

    public ChatWebSocketHandler(IChatLecture iChatLecture) {  

      this.iChatLecture = iChatLecture;  

    }

   

   @OnMessage

    public void onMessage(String message, Session session) {

    //业务处理:此时service bean完美注入,苦逼的问题完美解决

    iChatLecture.pushContent.....do something 

    

   }


  }