springboot 除了@Controller @RestController 类以外@Autowired 注入任何bean 都为null 空指针
在springboot项目中集成quartz时,需要使用到一个import org.springframework.scheduling.quartz.SchedulerFactoryBean这个类,并需要自动注入,在测试代码时,发现无法注入到普通.class文件中,后台报错提示:空指针异常。通过断电调试,发现时SchedulerFactoryBean这个类为NULL。
根据springboot 框架的注入方式检查,@Autowired 注解正确可用
采用另外的方式进行解决:
@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”来代替。