转发https://blog.csdn.net/weixin_40493969/article/details/92842673
websocket 不能自动注入( @Autowired ) service bean 报 null 错误
本质原因:
spring管理的都是单例(singleton),和 websocket (多对象)相冲突。
因为websocket是多实例单线程的,而websocket中的对象在@Autowried时,只有整个项目启动时会注入,而之后新的websocket实例都不会再次注入,故websocket上@Autowried的bean是会为null的
解决方案:
使用静态注入:
static RabbitAdmin rabbit;
@Autowired
public void setRabbitAdmin(RabbitAdmin rabbitAdmin){
MessageWebsocket.rabbit = rabbitAdmin;
}
————————————————
版权声明:本文为CSDN博主「疾风盲豪-亚青」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_40493969/article/details/92842673