场景

SpringBoot+Vue整合WebSocket实现前后端消息推送:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/114392573

SpringCloud(若依微服务版为例)集成WebSocket实现前后端的消息推送:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/114480731

在上面集成websocket的时候,如果需要在websocket建立连接的回调方法中去调用其他业务的service和mapper的方法时,却注入失败,service为空。

原因:

项目启动时初始化,会初始化 websocket (非用户连接的),spring 同时会为其注入 service,该对象的 service 不是 null,被成功注入。但是,由于 spring 默认管理的是单例,所以只会注入一次 service。
当新用户进入聊天时,系统又会创建一个新的 websocket 对象,这时矛盾出现了:spring 管理的都是单例,不会给第二个 websocket 对象注入 service,所以导致只要是用户连接创建的 websocket 对象,都不能再注入了。

注:

博客:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

实现

首先在websocket的服务类中添加applicationContext属性以及set方法

    private static ApplicationContext applicationContext;public static void setApplicationContext(ApplicationContext context) {applicationContext = context;}

添加位置

然后在项目的启动类中

        ConfigurableApplicationContext applicationContext =   SpringApplication.run(RuoYiFzysControlApplication.class, args);WebSocketService.setApplicationContext(applicationContext);

在项目启动后对其进行赋值,这里的WebSocketService对应上面自己的websocket服务类

然后就可以通过

applicationContext.getBean(IBusAreaControlService.class);

来调用其他service

SpringBoot整合WebSocket时调用service和mapper的方法相关推荐

  1. Springboot 整合Websocket+Stomp协议+RabbitMQ做消息代理 实例教程

    前言 如果你还没有了解过websocket,关于整合websocket的简单入门使用,可以先看看我这篇: <SpringBoot 整合WebSocket 简单实战案例> https://b ...

  2. Springboot 整合 WebSocket ,使用STOMP协议+Redis 解决负载场景问题(二)

    前言 上一篇,简单给大家整合了一下websocket,使用stomp方式. 这篇,就是考虑到单体的服务使用websocket ,按照上一篇的整合,确实没问题. 但是如果一旦是负载多台服务的时候,那么就 ...

  3. Springboot整合Websocket遇到的坑_websocket session不支持序列化,无法存储至redis_Websocket相关问题总结(Session共享,用户多端登录等)

    Springboot整合Websocket遇到的坑 一.使用Springboot内嵌的tomcat启动websocket 1.添加ServerEndpointExporter配置bean @Confi ...

  4. SpringBoot 整合WebSocket 简单实战案例

    前言 这个简单实战案例主要目的是让大家了解websocket的一些简单使用. 另外使用stomp方式的: <Springboot 整合 WebSocket ,使用STOMP协议 ,前后端整合实战 ...

  5. 最简单的springboot整合websocket方式

    简介 WebSocket是一种与HTTP不同的协议.两者都位于OSI模型的应用层,并且都依赖于传输层的TCP协议. 虽然它们不同,但是RFC 6455中规定:it is designed to wor ...

  6. springboot整合websocket实现消息推送

    springboot整合websocket 1.WebSocket介绍与原理 介绍:WebSocket是HTML5一种新的协议.它实现了浏览器与服务器全双工通信.一开始的握手需要借助HTTP请求完成. ...

  7. SpringBoot整合websocket实现在线客服聊天

    websocket最伟大之处在于服务器和客户端可以在给定的时间范围内的任意时刻,相互推送信息. 浏览器和服务器只需要要做一个握手的动作,在建立连接之后,服务器可以主动传送数据给客户端,客户端也可以随时 ...

  8. Springboot整合WebSocket(基于Stomp)

    Springboot整合WebSocket(基于Stomp) 文章目录 Springboot整合WebSocket(基于Stomp) 参考链接 前言 STOMP 定义 STOMP Over WebSo ...

  9. 在线聊天室的消息单聊的实现——springboot整合WebSocket(二)

    一.声明 项目的搭建请大家移步到:在线聊天室的消息群聊的实现--springboot整合WebSocket(一) 单聊的实现是在群聊项目上进行延申改造的. 二.引入依赖 <dependency& ...

最新文章

  1. 管道通信C语言,Go语言通道(chan)——goroutine之间通信的管道
  2. 增强现实(Augmented Reality)浅谈
  3. Ardino基础教程 16_一位数码管
  4. python正则表达式——regex模块
  5. OpenCASCADE可视化:3D演示之创建3D场景
  6. 关于PostMessage后台发送组合键
  7. linux ping库函数,Linux 常用基本命令 ping ifconfig
  8. ArcGIS个人数据库(mdb)中矢量字段无法删除
  9. update关联一个视图的时候特别慢_实现一个简单的Vue.js
  10. 如何快速从基因组中提取基因、转录本、蛋白、启动子、非编码序列?
  11. 361766103.jpg
  12. vuex页面数据丢失_解决 vuex 中的数据在页面刷新之后就丢失的问题
  13. C++基础语法-02-运算符重载
  14. 使用函数求素数和_用母函数法处理一个数论问题的研究笔记
  15. 02-最基本的SELECT语句
  16. 吴昊品游戏核心算法 Round 16 —— 吴昊教你玩口袋妖怪 完结篇 由金手指想到的...
  17. 大话一些大二层网络技术新兴术语,并总结它与OpenStack的关系 (by quqi99)
  18. 劳动社会学试题库【1】
  19. 物联网技术体系主要分为哪些关键技术,具体包含哪些技术?
  20. 点歌系统源码 android,安卓盒子点歌系统代码

热门文章

  1. python——变量的定义、命名
  2. python——初识python篇
  3. ubuntu16.04安装UR3/UR5/UR10机械臂的ROS驱动并实现gazebo下Moveit运动规划仿真以及真实UR3机械臂的运动控制(2)
  4. 详解java集合之ArrayList——底层实现是一个Object数组。分析ArrayList的自动扩容,原来不一定是1.5倍
  5. matlab计算一个长式子,matlab求积分,式子太长
  6. ffmpeg基本用法
  7. open-capacity-platform 项目启动
  8. python cnn_使用python中pytorch库实现cnn对mnist的识别
  9. python输出word内容_Django输出word文件(.doc),只在内容中显示原始html
  10. python3.9出了吗_Python 3.9 正式版要来了,会有哪些新特性?