在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
}
}
本文出自 “茶花会” 博客,请务必保留此出处http://shineman.blog.51cto.com/2416086/1685235
ServerEndpoint tomcat8和spring4环境中无法注入bean的问题
原文:http://shineman.blog.51cto.com/2416086/1685235