zoukankan      html  css  js  c++  java
  • Spring boot下@Autowired 注入为 NULL的问题

    问题描述:在springboot项目中集成quartz时,需要使用到一个import org.springframework.scheduling.quartz.SchedulerFactoryBean这个类,并需要自动注入,在测试代码时,发现无法注入到普通.class文件中,后台报错提示:空指针异常。通过断电调试,发现时SchedulerFactoryBean这个类为NULL。

    问题解决方案:

    1.根据springboot 框架的注入方式检查,@Autowired 注解正确,因为引用的框架本身的类,不需要在SchedulerFactoryBean类文件上加上@Component,所以本身没错。

    2.采用另外的方式进行解决:

     @Autowired
     private SchedulerFactoryBean schedulerFactoryBean;
        
     private static QuartzManager quartzManager;
        
     /**
      * 通过@PostConstruct实现初始化bean之前进行的操作
      * @desc 初始化操作,得到QuartzManager实例
      * @Date 2019年1月7日
      */
     @PostConstruct 
     public void init() {  
          quartzManager = this;  
          quartzManager.schedulerFactoryBean = this.schedulerFactoryBean;        
    }

    其中 QuartzManager 类就是该类本身,通过“quartzManager = this;  ”可以看出来。以后使用“schedulerFactoryBean” 就直接用“quartzManager.schedulerFactoryBean”来代替。

    这个解决方案的原理还不甚理解,但是可以获取到对象。尝试过将该种写法放在abstract class 类文件中,结果是无效的,不能解决,所以这种写法我初步认为只能解决普通类的注入问题,缘由还待深究。

  • 相关阅读:
    上传图片预览--图片上传后显示在某个模块中
    商品规格选择--添加背景色,并显示已选规格
    jquery选项卡
    swiper轮播图--兼容IE8
    点击图片查看大图--以弹框的形式显示在屏幕正中间
    百度地图API首页 -- 鼠标经过:类似翻页效果和 类似锚点链接效果
    别踩白块
    Jersey(1.19.1)
    Table of Contents
    Jersey(1.19.1)
  • 原文地址:https://www.cnblogs.com/momoweiduan/p/10242437.html
Copyright © 2011-2022 走看看