Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >使用WebSocket在Server类中无法使用Autowired注解进行自动注入

使用WebSocket在Server类中无法使用Autowired注解进行自动注入

作者头像
余生大大
发布于 2022-11-02 08:33:35
发布于 2022-11-02 08:33:35
5.9K00
代码可运行
举报
文章被收录于专栏:余生大大余生大大
运行总次数:0
代码可运行

问题

在SpringBoot项目中使用WebSocket的过程中有其他的业务操作需要注入其它接口来做相应的业务操作,但是在WebSocketServer类中使用Autowired注解无效,这样注入的对象就是空,在使用过程中会报空指针异常。

注释:上面说的WebSocketServer类就是指被@ServerEndpoint注解修饰的类

原因

原因就是在spring容器中管理的是单例的,他只会注入一次,而WebSocket是多对象的,当有新的用户使用的时候,他就会新创建一个WebSocket对象,这就导致了用户创建的WebSocket对象都不能注入对象了,所以在运行的时候就会发生注入对象为null的情况;

主要的原因就是Spring容器管理的方式不能直接注入WebSocket中的对象,所以需要调整一下注入方式。

解决办法

把需要注入的对象声明为静态对象,代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    private static BaseWebSocketService baseWebSocketService;

    @Autowired
    public void setService(BaseWebSocketService baseWebSocketService){
        WebSocketClient.baseWebSocketService = baseWebSocketService;
    }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-08-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
React Native之prop-types进行属性确认
React Native已经升级到0.51.0了,版本升级很快,但是对老项目也会有一些问题,常见的就是属性找不到的问题。例如: 主要原因是随着React Native的升级,系统废弃了很多
xiangzhihong
2018/02/06
1.5K0
React Native之prop-types进行属性确认
RN实现头部NavBar
(1)实现NavBar import React, {Component, PropTypes} from 'react'; import { AppRegistry, StyleSheet, Text, View, Dimensions, Platform } from 'react-native'; const {width, height} = Dimensions.get('window'); export default class GDNavB
提莫队长
2018/05/18
1.9K0
React-Native开发笔记 持续更新
1、css单位转换px2dp 在做页面开发的时候习惯了用rem去做css单位,处理各种尺寸数据,到了React-Native里面做app开发时,rem就不好用了,这个时候就需要转换成另外一个单位,基本原理和rem转换差不多,如下
木子墨
2018/12/10
9790
React Native仿美团下拉菜单
在很多产品中都会涉及到下拉菜单选择功能,用的最好的当属美团了,其效果如下: 要实现上面的效果,在原生中比较好做,直接使用PopWindow组件即可。如果使用React Native开发上面的效果,需
xiangzhihong
2018/01/26
5.3K0
ReactNative之参照具体示例来看RN中的FlexBox布局
今天是重阳节,祝大家节日快乐,今天继续更新RN相关的博客。上篇博客《ReactNative之从HelloWorld中看环境搭建、组件封装、Props及State》中我们通过一个HelloWorld的一个示例介绍了RN的环境搭建、组件封装、Props以及States。经过这么多天,今天我们继续来看RN的东西,本篇博客是关于RN的Flex布局的,也就是说是关于RN中控件放哪儿的一篇博客。在RN中使用的是Flex布局,如果你之前接触过Web前端的话对FlexBox布局并不陌生,但是如果你之前没做过Web开发的话,也不影响看今天的博客。本篇博客也是RN开发的基础,算是比较重要的。
lizelu
2018/10/25
2K0
ReactNative之参照具体示例来看RN中的FlexBox布局
ReactNative-综合案例(02)
最近几天学了几个ReactNative组件,总觉得单纯的学几个组件进步慢,所以我打算做一些综合性的小案例,练习下实战,我从网上找到一个小案例 ,感觉挺好,也学习了很多,代码内容可能不太一样,主要区别是:我把RN官方不推荐或者已经放弃了的组件进行了替换,如果有需要的可以互相参考下 接着上篇案例开始写,这篇文章将会讲解如何编写轮播图和列表 源代码下载 首先WYHome.js代码如下: import React, { Component } from 'react'; import { StyleS
czjwarrior
2018/05/28
7920
手把手教你如何自定义 React Native 底部导航栏
如果你觉得 React Navigation 默认 Tab 组件看起来太平淡,或者想创造一些更现代的东西,那么你想法就和我一样。 在本指南中,我将向你演示如何创建自定义标签栏以并与 React Navigation 一起使用。
前端小智@大迁世界
2019/04/25
7.9K0
手把手教你如何自定义 React Native  底部导航栏
React Native 文档查看组件
GitHub - forrest23/ReactNativeComponents: React Native组件大全
forrest23
2018/08/03
1.6K0
React Native 文档查看组件
RN项目第二节 -- 首页实现
一、微组件的封装 每个页面的导航都会有不同的样式或者图片,为了实现代码的复用性,可以将导航统一封装成一个微小组件。 封装的Item需要有可点击事件,需要显示文字和图片。 import React,
谦谦君子修罗刀
2018/06/19
6.7K0
RN实现ListView
(1)实现单个item import React, {Component, PropTypes} from 'react'; import { AppRegistry, StyleSheet, Text, View, Dimensions, Platform, Image } from 'react-native'; const {width, height} = Dimensions.get('window'); export default c
提莫队长
2018/05/18
1.2K0
7. 偷用Swiper简改
看这段代码应该就很清楚了,如果是android系统就渲染Pager如果是ios就使用横向的ScrollView,修改后的app首页如下:
MasterVin
2018/08/30
2K0
7. 偷用Swiper简改
RN自定义Modal弹窗|react-native仿微信/ios弹窗
之前就有使用react开发过一些项目,发现react框架蛮不错的,当初就想着要学习下原生Native技术,恰好最近空闲就一直在研究react-native技术,采坑了不少。尤其环境配置、真机模拟,遇到了很多问题,不过都解决了。
andy2018
2019/08/03
4.7K2
RN自定义Modal弹窗|react-native仿微信/ios弹窗
react native仿微信PopupWindow效果
在原生APP开发中,相信很多开发者都会见到这种场景:点击右上角更多的选项,弹出一个更多界面供用户选择。这种控件在原生开发中Android可以用PopupWindow实现,在ios中可以用CMPopTi
xiangzhihong
2018/02/06
2.6K0
react native仿微信PopupWindow效果
React Native之react-native-scrollable-tab-view详解
在React Native开发中,官方为我们提供的Tab控制器有两种:TabBarIOS和ViewPagerAndroid。TabBarIOS,仅适用于IOS平台 ViewPagerAndroid,仅适用于Android平台(严格来讲并不算,因为我们还需要自己实现Tab)。在项目开发中,我们优先选择一些开源兼容性比较好的第三方库,例如,react-navigation,以及本文即将说到的react-native-scrollable-tab-view(官方地址)。react-native-scrolla
xiangzhihong
2018/02/06
6.6K0
React Native之react-native-scrollable-tab-view详解
Rn封装底部弹窗组件
PopUp弹窗组件 import React from "react" import { Dimensions, Modal, StyleSheet, TouchableOpacity, View } from 'react-native' const { width } = Dimensions.get('window') export default (props) => { const { visible, closeModal, children } = props c
明知山
2023/05/11
5850
Rn封装底部弹窗组件
React-Native开发规范文档
方式表达逻辑,【强制】请勿超过3层, 超过请使用状态设计模式。 正例:逻辑上超过 3 层的 if-else 代码可以使用卫语句,或者状态模式来实现。
conanma
2021/11/02
2.1K0
React native城市列表组件
城市列表选择是很多app共有的功能,比如典型的美图app。那么对于React Native怎么实现呢? 要实现上面的效果,首先需要对界面的组成简单分析,界面的数据主要由当前城市,历史访问城市和热门城
xiangzhihong
2018/01/26
2.4K0
React Native组件之Button
不管在Android还是ios开发中,系统都有Button组件,而在早期的React Native中,系统是不提供Button组件的,一般会使用一个叫做react-native-button的库。 Button组件 Button组件其实就是 Touchable(TouchableNativeFeedback、TouchableOpacity)和Text封装。核心源码如下: render() { const { accessibilityLabel, color,
xiangzhihong
2018/02/06
1.4K0
React Native组件之Button
React Native学习笔记(三)—— 样式、布局与核心组件
React Native 有一个内置的命令行界面,你可以用它来生成一个新项目。您可以使用 Node.js 附带的 访问它,而无需全局安装任何内容。让我们创建一个名为“AwesomeProject”的新 React Native 项目:npx
张果
2023/04/12
14.6K0
React Native学习笔记(三)—— 样式、布局与核心组件
React Native热更新方案
随着 React Native 的不断发展完善,越来越多的公司选择使用 React Native 替代 iOS/Android 进行部分业务线的开发,也有不少使用 Hybrid 技术的公司转向了 React Native 。虽然React Native在目前来说仍有不少的坑,不过对于以应用开发为主的App来说完全可以胜任。 概述 在iOS应用开发中,由于Apple严格的审核标准和低效率,iOS应用的发版速度极慢,这对于大多数团队来说是不能接受的,所以热更新对于iOS应用来说就显得尤其重要。而就在前不久,苹果
xiangzhihong
2018/02/06
9.6K0
React Native热更新方案
相关推荐
React Native之prop-types进行属性确认
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验