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实现发送邮件(QQ邮箱为例)

    springboot实现发送邮件(QQ邮箱为例)

    这篇文章主要为大家详细介绍了springboot实现发送邮件,qq邮箱代码实现邮件发送,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-06-06
  • 详解MyBatis批量插入数据Mapper配置文件的写法

    详解MyBatis批量插入数据Mapper配置文件的写法

    本篇文章主要介绍了详解MyBatis批量插入数据Mapper文件的写法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-04-04
  • SpringMVC中使用Thymeleaf模板引擎实例代码

    SpringMVC中使用Thymeleaf模板引擎实例代码

    这篇文章主要介绍了SpringMVC中使用Thymeleaf模板引擎实例代码,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02
  • SpringBoot初始化接口CommandLineRunner示例详解

    SpringBoot初始化接口CommandLineRunner示例详解

    这篇文章主要介绍了SpringBoot初始化接口CommandLineRunner,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • java调用Hbase报错解决方法

    java调用Hbase报错解决方法

    这篇文章主要为大家介绍了java调用Hbase报错解决方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • java 获取当前路径下的所有xml文档的方法

    java 获取当前路径下的所有xml文档的方法

    这篇文章主要介绍了java如何获取当前路径下的所有xml文档,需要的朋友可以参考下
    2014-05-05
  • 一道关于java异常处理的题目

    一道关于java异常处理的题目

    本文给大家分享一道关于java异常处理的题目,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-09-09
  • Spring boot读取外部化配置的方法

    Spring boot读取外部化配置的方法

    大家好,本篇文章主要讲的是Spring boot读取外部化配置的方法,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-02-02
  • mybatis插入数据后如何返回新增数据的id值

    mybatis插入数据后如何返回新增数据的id值

    当往mysql数据库插入一条数据时,有时候需要知道刚插入的信息,下面这篇文章主要给大家介绍了关于mybatis插入数据后如何返回新增数据id值的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-06-06
  • 如何使用JavaCV进行图像灰度化处理

    如何使用JavaCV进行图像灰度化处理

    在计算机视觉和图像处理领域,图像灰度化是一项基础且重要的任务,它将彩色图像转换为灰度图像,JavaCV 是一个强大的开源库,它提供了对各种计算机视觉算法和图像处理操作的支持,本文将详细介绍如何使用 JavaCV 进行图像灰度化处理,需要的朋友可以参考下
    2024-10-10

最新评论