这个问题和weboscket一样
* 因 SpringBoot WebSocket 对每个客户端连接都会创建一个 WebSocketServer(@ServerEndpoint 注解对应的) 对象,Bean 注入操作会被直接略过,因而手动注入一个全局变量,spring管理的都是单对象,和Websocket 多对象相冲突。
同理 netty也是多对象,spring无法管理
解决方法:
- 网上出现较多的主动通过getBean的方式来获取
- 上面的过于麻烦,尝试使用解决weboscket无法注入的方法来解决,成功。
参考 https://blog.csdn.net/m0_37202351/article/details/86255132
@Component
@Slf4j
public class ServerHandler extends ChannelInboundHandlerAdapter {
public static RecordService recordServiceImpl;
@Autowired
public void setRecordServiceImpl(RecordService recordServiceImpl) {
ServerHandler.recordServiceImpl = recordServiceImpl;
}