当前位置: 首页 > news >正文

海口做网站公司东莞今天的最新通知

海口做网站公司,东莞今天的最新通知,无锡网站建设公司排名,cnnic可信网站必须做吗?文章目录 在WebSocket中使用Redis1.问题描述2.原因3.解决步骤1.新建一个SpringUtil.java类,通过getBean的方法主动获取实例2.在WebSocketSingleServer.java中导入 在WebSocket中使用Redis 1.问题描述 在controller 和 service中都可以正常使用Redis,在…

文章目录

  • 在WebSocket中使用Redis
    • 1.问题描述
    • 2.原因
    • 3.解决步骤
      • 1.新建一个SpringUtil.java类,通过getBean的方法主动获取实例
      • 2.在WebSocketSingleServer.java中导入

在WebSocket中使用Redis

1.问题描述

在controller 和 service中都可以正常使用Redis,在WebSocket中却报错?
在这里插入图片描述在这里插入图片描述

初次遇到这个问题,我还以为是字符串类型错误,改了两个小时才发现问题所在!!!

2.原因

在@ServerEndpoint注解类中使用@Resource或@Autowired注入失败。报出空指针异常。

原因是WebSocket是线程安全的,有用户连接时就会创建一个新的端点实例,一个端WebSocket是多对象的,使用的spring却是单例模式。这两者刚好冲突。

@Autowired注解注入对象是在启动的时候就把对象注入,而不是在使用A对象时才把A需要的B对象注入到A中。

而WebSocket在刚刚有说到,有连接时才实例化对象,而且有多个连接就有多个对象。总结就是,WebSocket是多对象的。不管单独使用也好,结合spring也好,或者结合SpringBoot也罢,他都是多对象的。

3.解决步骤

1.新建一个SpringUtil.java类,通过getBean的方法主动获取实例

package com.example.utils;import org.springframework.beans.BeansException;
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.stereotype.Component;@Component
public final class SpringUtils implements BeanFactoryPostProcessor {private static ConfigurableListableBeanFactory beanFactory;@Overridepublic void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {SpringUtils.beanFactory = beanFactory;}public static ConfigurableListableBeanFactory getBeanFactory() {return beanFactory;}/*** 获取对象** @param name* @return Object 一个以所给名字注册的bean的实例* @throws org.springframework.beans.BeansException*/@SuppressWarnings("unchecked")public static <T> T getBean(String name) throws BeansException {if (getBeanFactory() == null) {//zhengkai.blog.csdn.netSystem.out.println("本地调试Main模式,没有BeanFactory,忽略错误");return null;} else {T result = (T) getBeanFactory().getBean(name);return result;}}/*** 获取类型为requiredType的对象** @param name* @return* @throws org.springframework.beans.BeansException*/public static <T> T getBean(Class<T> name) throws BeansException {if (getBeanFactory() == null) {//zhengkai.blog.csdn.netSystem.out.println("本地调试Main模式,没有BeanFactory,忽略错误");return null;} else {T result = (T) getBeanFactory().getBean(name);return result;}}/*** 如果BeanFactory包含一个与所给名称匹配的bean定义,则返回true** @param name* @return boolean*/public static boolean containsBean(String name) {return getBeanFactory().containsBean(name);}/*** 判断以给定名字注册的bean定义是一个singleton还是一个prototype。 如果与给定名字相应的bean定义没有被找到,将会抛出一个异常(NoSuchBeanDefinitionException)** @param name* @return boolean* @throws org.springframework.beans.factory.NoSuchBeanDefinitionException*/public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException {return getBeanFactory().isSingleton(name);}/*** @param name* @return Class 注册对象的类型* @throws org.springframework.beans.factory.NoSuchBeanDefinitionException*/public static Class<?> getType(String name) throws NoSuchBeanDefinitionException {return getBeanFactory().getType(name);}/*** 如果给定的bean名字在bean定义中有别名,则返回这些别名** @param name* @return* @throws org.springframework.beans.factory.NoSuchBeanDefinitionException*/public static String[] getAliases(String name) throws NoSuchBeanDefinitionException {return getBeanFactory().getAliases(name);}}

2.在WebSocketSingleServer.java中导入

    @Resourceprivate StringRedisTemplate stringRedisTemplate= SpringUtils.getBean(StringRedisTemplate.class);
http://www.mmbaike.com/news/29968.html

相关文章:

  • 简述网站建设的方案重庆做网络优化公司电话
  • a站下载安装百度客服人工电话
  • 网站做代理还可以刷水吗站长工具seo下载
  • 建设独立网站需要什么时候找客户资源的软件
  • 潍坊专业果蔬清洗机临沧seo
  • 谢岗镇仿做网站谷歌优化方法
  • 企业网站推广形式有网站搭建策略与方法
  • 站点建错了网页能打开吗百度投诉中心24人工客服
  • 萧山网站建设xssem企业网络营销方法
  • 上海设计网站与百度联盟是什么
  • 慈溪做网站的公司域名查询
  • 手机网站视频无法播放是怎么回事百度网站推广申请
  • 网站代码调试百度营业执照怎么办理
  • 怎么建一个视频网站做推广适合小学生的最新新闻
  • 杭州的做网站公司浏览器网站进入口
  • 东莞网络推广系统免费seo网站诊断
  • 做外销网站服务器好吗软文营销的宗旨是什么
  • 淘宝客做网站教程慈溪seo排名
  • 网站建设中网站需求分析百度搜索什么关键词能搜到网站
  • 社区论坛网站建设百度快速排名提升
  • xyz域名注册局官方网站郑州网站制作
  • 一个电子商务网站的用户购买行为监测报告文档格式怎么做?网站外链怎么发布
  • 做网站用什么编程语言好seo优化上海牛巨微
  • 塔城地区建设工程信息网站整站优化seo
  • 海外仓一件代发平台aso优化师
  • 隧道建设网站无法登录网站建设网站定制
  • 单页面网站 万网x3哈尔滨百度搜索排名优化
  • 局网站建设自查数字营销公司排行榜
  • 济宁网站建设济宁百度推广app怎么收费
  • 网站到底备案好不好长沙seo