一、问题现象
websoctserver经常需要处理具体业务,要调用容器中的bean。websoctserver已用@component标注,使用Atuowire注入bean时失败。bean等于null。
二、问题原因
spring维护的是单实例,websocket为多实例。每次请求建立链接的时候,都会生成一个新的bean。
三、解决方案
让websoctserver持有一个静态的bean对象,在创建时通过@Atuowire标注方法,自动注入值。
四、示意代码
private static OgLocationService ogLocationService;
@Autowired
public void setOgLocationService(OgLocationService ogLocationService) {
WebSocketUserServer.ogLocationService = ogLocationService;
}
网友评论