使用websocket,使用@Autowired等注解无法注入Spring的Bean,或者注入Bean,运行时为null

使用websocket,使用@Autowired等注解无法注入Spring的Bean,或者注入Bean,运行时为null这是因为Spring 管理的 bean 是通过 Spring 容器来注入的,而 WebSocket 的端点

这是因为Spring 托管bean 是通过Spring 容器注入的,而WebSocket 端点(@ServerEndpoint) 是由WebSocket 容器(Tomcat、Jetty 等)直接管理的。这意味着WebSocket端点可能在Spring容器创建之前就已创建,导致Spring容器无法注入bean。

@Autowired

私有UserService 用户服务;

/**

* 连接成功时调用的方法

*/

@OnOpen

public void onOpen(Session session, @PathParam(\’userId\’) Integer userId) {

this.CurrentUserName=userService.getUserName(userId);

因此,直接使用注解注入bean很有可能会抛出NULL指针异常。

所以解决方案是使用配置类中的write 方法并手动获取WebSocket 端点上的Spring 上下文来获取UserService 实例。

私有静态UserService userService;

@Autowired

公共无效setUserService(UserService userService){

WebSocketServer.userService=userService;

}

上面关于使用#WebSockets、无法使用@Autowired等注解注入Spring bean、或者注入运行时为null的bean的相关内容源网络的信息仅供参考。官宣!

原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/93786.html

Like (0)
CSDN的头像CSDN
Previous 2024年7月26日
Next 2024年7月26日

相关推荐

  • 系统设计:设计URL短链接工具

    系统设计:设计URL短链接工具1*xOHz3T_iSShM2rRIT2bljA.png 这是一个系统设计问题,要求从头开始设计一个类似于TinyURL或Bitly的URL短链接工具。我们将涵盖从设计需求、架构和组件设计到高性能

    网站运维 2024年6月28日
    0
  • p2p对等网络的概念(p2p对等连接)

    上一篇文章我们介绍了 CDN 网络,它通过 DNS 服务器的转发,将网站内容分布到世界各地,以便他人共同使用。 实际情况,并不是每个人都能在世界各地建立成百上千个节点来分发内容。针…

    网站运维 2024年4月19日
    0
  • 私有云有哪些功能?

    私有云是一种基于云计算技术的云服务模式,主要是由企业或者是组织自己进行搭建和管理的,通常用于提供计算资源和服务,私有云普遍是单租户,意思是只有一个用户进行使用,

    2024年9月21日
    0
  • 如何使用快捷键结束电脑上的进程?

    相信大家都遇到程序卡死的情况,那么在程序卡死的时候windows系统是不会强制关闭的进程的,他只会等待程序响应或者寻找解决办法,而往往这就没了头,有很多用户问结

    2024年9月21日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注