listener@Autowired无法注入bean的一种解决方法

public class FileListener extends FileAlterationListenerAdaptor {

    @Autowired
    private WebSocketConfig webSocketConfig;
}

上述代码中 webSocketConfig的值一直为null;

原因:listener、fitter都不是Spring容器管理的,无法在这些类中直接使用Spring注解的方式来注入我们需要的对象。

解决方法1:从spring的上下文WebApplicationContext 中获取,最直接的。

解决方法2:根据自己项目需要,修改初始化参数。

步骤1:将要注入的bean作为listener的属性处理,并生成set和get方法

@Component
public class FileListener implements FileAlterationListener {
    private static WebSocketConfig webSocketConfig;

    public static WebSocketConfig getWebSocketConfig() {
        return webSocketConfig;
    }

    public static void setWebSocketConfig(WebSocketConfig webSocketConfig) {
        FileListener.webSocketConfig = webSocketConfig;
    }
}

步骤2: 编写初始化类,在初始化类中对listener进行赋值。(实际业务需要初始化类,仅供吐槽)

@Component
@Order(value = 1)
public class FileInitRun implements CommandLineRunner {

    @Autowired
    private WebSocketConfig webSocketConfig;

    @Override
    public void run(String... args) throws Exception {
        //解决listener注入不了spring容器对象的问题
        FileListener.setWebSocketConfig(webSocketConfig);
    }
}

经过这样处理,可以在FileListener对locationService对象进行操作了。

Original: https://www.cnblogs.com/xiaolibiji/p/15822073.html
Author: xiaolifc
Title: listener@Autowired无法注入bean的一种解决方法

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/573778/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Docker安装Mysql

    1、在docker hub 上查看要下载的mysql镜像名称 dockerHub官网地址 在上方搜索栏里输入mysql 找到要拉取的镜像版本,在tag下找到版本 回到虚拟机界面,执…

    Java 2023年6月8日
    085
  • 关于soapUI调用报错:Error reading XMLStreamReader:

    不积跬步无以至千里,记录每一个小bug解决过程: 问题描述: 今天是第一次使用webservice,也是第一次调webservice,用soapUI调用时,产生报错 先是报错Err…

    Java 2023年6月16日
    0112
  • 常见的日志框架分析

    起由 日志的发展历程 基本用法 log4j jul jcl slf4j log4j2 怎么做到无缝衔接的 jcl 原理 slf4j 原理 log4j2 原理 最后说说Spring中…

    Java 2023年6月8日
    0101
  • Spring Security认证流程分析(6)

    1.认证流程分析 Spring Security中默认的一套登录流程是非常完善并且严谨的。但是项目需求非常多样化, 很多时候,我们可能还需要对Spring Secinity登录流程…

    Java 2023年6月13日
    056
  • SpringBoot 项目部署 (配置文件分离)

    SpringBoot 配置文件加载 SpringBoot 加载配置文件的优先级如下: 当前目录下的 config 子目录; 当前目录; classpath下的 config文件夹;…

    Java 2023年6月7日
    074
  • 动力节点-王妈妈Springboot教程(四)ORM 操作 MySQL

    可以使用如下的方式解决。 主类上添加注解包扫描: @MapperScan(“com.bjpowernode.dao”) 新建 Spring Boot 项目 …

    Java 2023年6月7日
    079
  • remoting作成windows服务后一直无法读取配置文件,可能的原因之一。

    当然在这个无法读取配置文件,无法启动通道之前,你必须确认你的配置文件是正确的。正确的动态配置remoting的格式是: service >serverProviders &g…

    Java 2023年6月14日
    090
  • 常见API使用

    String类 字符串相关的类 Java程序中的所有字符串文字(例如”abc”)都实现为此类的实例 字符串是不变的 他们的值在创建后无法更改 Date类 D…

    Java 2023年6月8日
    056
  • Redis变慢?深入浅出Redis性能诊断系列文章(一)

    (本文首发于”数据库架构师”公号,订阅”数据库架构师”公号,一起学习数据库技术) Redis 作为一款业内使用率最高的内存数据库,其…

    Java 2023年6月16日
    076
  • 哈工大软件构造Lab1(2022)

    目录 一、实验目标概述 二、实验环境配置 1、安装编写java程序的IDE——IntelliJ IDEA 2、安装Git 3、安装Junit 4、GitHub Lab1仓库的URL…

    Java 2023年6月9日
    096
  • java如何快速创建List

    几个快速添加list的方法 1. 使用Collections.addAll()方法,前提还是需要手动 new ArrayList html;gutter:true; ArrayLi…

    Java 2023年5月29日
    076
  • 设计模式 — Observer(观察者模式)

    在软件构建的过程中,我们需要为某些对象建立一种”通知依赖关系”——一个对象(目标对象)的状态发生改变,其他对象(观察者对象)都将得到通知。如果这样的依赖关系…

    Java 2023年6月16日
    064
  • 基于UML软件建模的高校新闻管理系统

    前言 近年来,伴随着我国国内的网络技术快速发展。高校校园网络建设逐渐迅速发展起来,逐步演变为高校的一个宣传窗口。建立自己的高校新闻发布管理系统已经成为了一种趋势。传统的校园新闻往往…

    Java 2023年6月5日
    0106
  • 朱晔和你聊Spring系列S1E2:SpringBoot并不神秘

    朱晔和你聊Spring系列S1E2:SpringBoot并不神秘 【编辑器丢失了所有代码的高亮,建议查看PDF格式文档】 文本我们会一步一步做一个例子来看看SpringBoot的自…

    Java 2023年5月30日
    0107
  • mybatis多次查询全部后返回一个Page对象/sql语句多出一个limit

    今天在前端走页面的时候,发现有个接口返回的数据偶尔出现一次不是预想的结果。 先看我需要返回的数据: 再看不是预想中的数据: 断点调试后发现问题出现在 List<product…

    Java 2023年6月16日
    0102
  • java selenium (六) XPath 定位

    xpath 的定位方法, 非常强大。 使用这种方法几乎可以定位到页面上的任意元素。 什么是xpath xpath 是XML Path的简称, 由于HTML文档本身就是一个标准的XM…

    Java 2023年5月29日
    077
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球