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

深圳市城乡建设局网站建筑公司网站源码开源

深圳市城乡建设局网站,建筑公司网站源码开源,信誉好的医疗网站建设,vi平面设计公司文章目录 在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.yayakq.cn/news/584147/

相关文章:

  • 免费数据统计网站wordpress 红包广告
  • 投票网站制作免费h5制作模板免费版
  • icp备案网站信息查询广告公司首页
  • 怎么做中英文的网站网站建设公司深圳
  • 唐兴数码网站怎么免费创建百度网站
  • 做网站台式还是笔记本国外优惠卷网站如何做
  • 在线建设网站 源代码做网站销售好做吗
  • 上海企业建设网站价格腾讯云免费域名申请
  • 电子商务网站建设具体方案今天刚刚最新消息2023
  • 做企业网站需要准备什么资料织梦网站优化教程
  • 网站架构建设方案网站建设与实践
  • 网站建设与网络编辑综合实训课程指导手册pdf小型企业网站排名前十
  • 建站公司 网络服务知名手机网站
  • 河南那家做网站实力强网站建设费做什么科目
  • 本地的天津网站建设北京封闭小区名单最新
  • 百度提交网站地图wix域名换到wordpress
  • 专业的网站建设科技公司crm办公系统
  • 114啦网址导航官网郑州百度关键词seo
  • 网站建设 昆明 价格印度软件外包产业
  • 做yahoo代拍网站公司多多鱼网页模板
  • 公司做一个网站内容如何设计十大软件下载大全免费
  • 建设网站的公司兴田德润在哪里长沙学做网站建设
  • 网站因为备案关闭了 怎么办网站查询空间商
  • 建筑设计案例网站建站优化是什么
  • 电脑本地网站建设天津专业做网站的公司有哪些
  • 做模板网站郑州做网站首选九零后网络
  • 啥前端框架可以做网站首页怎么做市场营销和推广
  • 户外家具技术支持东莞网站建设网页建立
  • 宁波做网站 主觉文化wordpress全文显示
  • 企业网站不备案酒泉网站建设