websocket client中无法自动加载实例 ゞ 浴缸里的玫瑰 2021-11-05 07:40 259阅读 0赞 spring 或 springboot 的 websocket 里面使用 @Autowired 注入 service 或 bean 时,报空指针异常,service 为 null(并不是不能被注入)。 解决方法:将要注入的 service 改成 static,就不会为null了。 相关代码如下: 在WebSocketConfig中加入如下代码(例如我要注入redisUtils): @Autowired public void setMessageService(RedisUtils redisUtils) { WebSocketClient.redisUtils = redisUtils; } 在WebSocketClient中加入如下代码: @ClientEndpoint public class WebSocketClient { /** * 日志 */ private static final Logger LOGGER = LoggerFactory.getLogger(WebSocketClient.class); /** * 这里使用静态,让 RedisUtils 属于类 */ public static RedisUtils redisUtils; } 本质原因:spring管理的都是单例(singleton),和 websocket (多对象)相冲突。 详细解释:项目启动时初始化,会初始化 websocket (非用户连接的),spring 同时会为其注入 service,该对象的 service 不是 null,被成功注入。 但是,由于 spring 默认管理的是单例,所以只会注入一次 service。 当新用户进入聊天时,系统又会创建一个新的 websocket 对象,这时矛盾出现了:spring 管理的都是单例,不会给第二个 websocket 对象注入 service,所以导致只要是用户连接创建的 websocket 对象,都不能再注入了。 像 controller 里面有 service, service 里面有 dao。因为 controller,service ,dao 都有是单例,所以注入时不会报 null; 但是 websocket 不是单例,所以使用spring注入一次后,后面的对象就不会再注入了,会报null
相关 cydia无法加载(cydia无法加载发生了ssl错误) 为什么我的ipad2越狱完成后点开cydia就一直显示加载中的页? 网页上面有一条加载的线显示的 cydia无法加载,(请求超时)这个怎么解决,求大神了,无法添加? 妖狐艹你老母/ 2023年09月26日 12:58/ 0 赞/ 46 阅读
相关 自动加载 类自动加载 > 在编写面向对象程序时,每个类新建一个PHP文件,这会带来一个烦恼:每个脚本的开头,都需要`require`一个长长的列表。这就需要一种自动加载机制。 > 妖狐艹你老母/ 2023年02月28日 05:26/ 0 赞/ 187 阅读
相关 JQ自动加载函数: 分页加懒加载 JS: var _page = 1, _words = '', _loadDone = false; //当滚动条即将到达底部自动加载数据 Dear 丶/ 2023年02月20日 07:08/ 0 赞/ 19 阅读
相关 我无法使用Google Chrome加载资源:net :: ERR_BLOCKED_BY_CLIENT 本文翻译自:[I am getting Failed to load resource: net::ERR\_BLOCKED\_BY\_CLIENT with Google c 系统管理员/ 2022年11月29日 05:53/ 0 赞/ 91 阅读
相关 WebSocket Client连接远程WebSocket Server 在[这篇文章][Link 1]中,简单介绍了WebSocket的使用,客户端可以使用了JavaScript向服务发送请求,服务端也可以通过SimpMessagingTempla 水深无声/ 2022年06月06日 00:54/ 0 赞/ 654 阅读
相关 Word、PowerPoint无法加载mathtype加载项 一般我们在卸载mathtype之后,都会出现“Word无法加载mathtype加载项”或者“PowerPoint无法加载mathtype加载项”的问题,这是因为我们卸载math 向右看齐/ 2022年06月01日 12:18/ 1 赞/ 1997 阅读
相关 Composer 中的自动加载 简介 对于文件的自动加载,Composer 生成了一个 vendor/autoload.php 文件。你可以简单的引入这个文件,就会得到自动加载的支持。 req 待我称王封你为后i/ 2022年05月25日 07:08/ 0 赞/ 272 阅读
相关 websocket client中无法自动加载实例 spring 或 springboot 的 websocket 里面使用 @Autowired 注入 service 或 bean 时,报空指针异常,service 为 ゞ 浴缸里的玫瑰/ 2021年11月05日 07:40/ 0 赞/ 260 阅读
相关 PHP自动加载 php类的自动加载机制 Test1.class.php <?php class Test1 { public stati 一时失言乱红尘/ 2021年09月30日 14:52/ 0 赞/ 359 阅读
还没有评论,来说两句吧...