springboot serverEndpoint导致@resource注解不生效

 更新时间:2023年12月26日 15:46:53   作者:回到高老庄  
在SpringBoot中,@Resource注解用于注入依赖,本文主要介绍了springboot serverEndpoint导致@resource注解不生效,具有一定的参考价值,感兴趣的可以了解一下

在 Spring Boot 中,@Resource 注解用于注入依赖,RedisTemplate 用于与 Redis 数据库交互。

如果你在 Spring Boot 中使用了 @ServerEndpoint 注解创建 WebSocket,可能会导致 @Resource 注解无法注入 RedisTemplate 的问题。

这是因为 @ServerEndpoint 使用了自己的内部类加载器加载,而不是应用程序类加载器。这意味着 @Resource 注解无法访问应用程序上下文中的 RedisTemplate 实例。

要解决这个问题,你可以使用 Spring Boot 提供的 @Component 注解代替 @ServerEndpoint,然后在组件类中使用 @ServerEndpoint 注解创建 WebSocket。这将使用应用程序类加载器加载组件类,使 @Resource 注解能够正常注入 RedisTemplate 实例。

另一种解决方法是将 RedisTemplate 实例化为静态属性,然后在 @ServerEndpoint 注解的类中访问该属性,而不是使用 @Resource 注解进行注入。

@Component
public class WebSocketComponent {
    private static RedisTemplate<String, String> redisTemplate;

    @Resource
    public void setRedisTemplate(RedisTemplate<String, String> redisTemplate) {
        WebSocketComponent.redisTemplate = redisTemplate;
    }

    @ServerEndpoint("/websocket")
    public static class WebSocketServerEndpoint {
        // 使用 WebSocketComponent.redisTemplate 访问 RedisTemplate 实例
    }
}

这样做将确保 RedisTemplate 实例只会在应用程序启动时实例化一次,并且可以在 @ServerEndpoint 注解的类中访问该实例。

到此这篇关于springboot serverEndpoint导致@resource注解不生效的文章就介绍到这了,更多相关springboot @resource注解不生效内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解springboot+mybatis-plue实现内置的CRUD使用详情

    详解springboot+mybatis-plue实现内置的CRUD使用详情

    这篇文章主要介绍了详解springboot+mybatis-plue实现内置的CRUD使用详情,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Java调用UniHttp接口请求失败的三种解决策略

    Java调用UniHttp接口请求失败的三种解决策略

    在当今数字化时代,不管是内部系统之间还是跟外部系统的对接,接口调用已成为软件开发中不可或缺的一部分,本文主要介绍了Java调用UniHttp接口请求失败的三种解决策略,希望对大家有所帮助
    2025-09-09
  • springboot 接口返回字符串带引号的问题解决

    springboot 接口返回字符串带引号的问题解决

    本文主要介绍了springboot 接口返回字符串带引号的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • Java日常练习题,每天进步一点点(10)

    Java日常练习题,每天进步一点点(10)

    下面小编就为大家带来一篇Java基础的几道练习题(分享)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望可以帮到你
    2021-07-07
  • java实现字符与Unicode码转换(附源码)

    java实现字符与Unicode码转换(附源码)

    在 Java 开发中,经常需要在字符(char 或 String)与其对应的Unicode 码点(int)之间进行相互转换,下面小编就来和大家详细介绍一下具体实现方法吧
    2025-07-07
  • 深入理解Maven的坐标与依赖

    深入理解Maven的坐标与依赖

    这篇文章主要介绍了深入理解Maven的坐标与依赖,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • Java使用ThreadLocal实现当前登录信息的存取功能

    Java使用ThreadLocal实现当前登录信息的存取功能

    ThreadLocal和其他并发工具一样,也是用于解决多线程并发訪问,下这篇文章主要给大家介绍了关于Java使用ThreadLocal实现当前登录信息的存取功能,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • maven中profile的使用

    maven中profile的使用

    本文主要介绍了maven中profile的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • Java导出excel时合并同一列中相同内容的行思路详解

    Java导出excel时合并同一列中相同内容的行思路详解

    这篇文章主要介绍了Java导出excel时合并同一列中相同内容的行,需要的朋友可以参考下
    2018-06-06
  • SpringBoot项目调优及垃圾回收器的比较详解

    SpringBoot项目调优及垃圾回收器的比较详解

    这篇文章主要介绍了SpringBoot项目调优及垃圾回收器的比较详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04

最新评论