在项目中用到了Quartz,想在里面实现业务操作发现sping类注入总是失败。后来网上查询了一下解决办法。下面把我成功解决问题的这个版本发出来,大家一起学习一下。

在quartz 会发现 job中无法注入springboot管理的类

解决方法:新建Jobfactory类

  1. @Component
  2. public class JobFactory extends AdaptableJobfactory{
  3. @Autowired
  4. private AutowireCapableBeanFactory capableBeanFactory;
  5. @Override
  6. protected Object createJobInstance(TriggerFiredBundle bundle) throws Exception{
  7. //调用父类的方法
  8. Object jobInstance=super.createJobInstance(bundle);
  9. //进行注入
  10. capableBeanFactory.autowireBean(jobInstance);
  11. return jobInstance;
  12. }
  13. }
  14. 新建QuartzConfig
  15. @Configuration
  16. @EnableScheduling
  17. public class QuartzConfig{
  18. @Autowired
  19. JobFactory jobfactory;
  20. @Bean
  21. public SchedulerFactoryBean schedulerFactoryBean() throws IOException{
  22. SchedulerFactoryBean factory=new SchedulerFactoryBean();
  23. factory.setOverwriteExistingJobs(true);
  24. //延时启动
  25. factory.setStartupDelay(20);
  26. //自定义JobFactory,用于Spring注入
  27. factory.setJobFactory(jobFactory);
  28. return factory;
  29. }
  30. }

之后在配置job时
@Autowired
SchedulerFactoryBean schedulerFactoryBean;
即可

切记一定要用注入的方式注入schedulerFactoryBean。

作者:___shin
链接:https://www.jianshu.com/p/73776cbd2956
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

boot中 Quartz注入spring管理类失败的更多相关文章

  1. Spring Boot集成Quartz注入Spring管理的类

    摘要: 在Spring Boot中使用Quartz时,在JOB中一般需要引用Spring管理的Bean,通过定义Job Factory实现自动注入. Spring有自己的Schedule定时任务,在S ...

  2. servlet中调用注入spring管理的dao(转)

    今天做大型仪器的的时候遇到的问题,转下为了以后能用 http://blog.csdn.net/jiyingying_up/article/details/44803585 我们用spring的依赖注入 ...

  3. 没有纳入spring管理的类如何注入spring管理的对象

    spring 如何在普通类中调用注入的对象? spring 在Thread中注入@Resource失败,总为null~解决 springmvc 注入总是空指针异常? 以上的几个问题就是我在项目中遇到的 ...

  4. Spring Boot中使用Flyway来管理数据库版本

    flyway是一个开源的数据库迁移工具.类似于数据库的版本控制工具.flyway的数据库修改文件默认放在resource下的db.migration文件夹中,以V{version_number}__{ ...

  5. Flyway:Spring Boot中使用Flyway来管理数据库版本

    Flyway简介 Flyway是一个简单开源数据库版本控制器(约定大于配置),主要提供migrate.clean.info.validate.baseline.repair等命令.它支持SQL(PL/ ...

  6. Spring Boot中使用Lombok消除POJO类模板代码

    首先,要让IDE支持Lombok,这里以idea为例进行介绍. 点击项目的“File”-—>"settings"—>"Plugins",在marke ...

  7. Spring Boot中使用使用Spring Security和JWT

     目标 1.Token鉴权 2.Restful API 3.Spring Security+JWT 开始 自行新建Spring Boot工程 引入相关依赖 <dependency> < ...

  8. JSP页面中如何注入Spring容器中的bean

    第一步在JSP页面中导入下面的包: <%@page import="org.springframework.web.context.support.WebApplicationCont ...

  9. 不用注入方式使用Spring管理的对象中的方法,神奇

    在小冷工作中遇到这么一个小问题,当你的业务层对象交给spring管理之后,在普通的类中调用这个类中的方法时候,会有个问题这个类在调用时候会一直返回一个null,而且还会抛出一个空指针异常. 小冷在遇到 ...

随机推荐

  1. fatal error C1083: Cannot open include file: 'openssl/opensslv.h'

    在安装针对ELK系统的警告工具elastalert时,报错: fatal error C1083: Cannot open include file: 'openssl/opensslv.h',如下图 ...

  2. python-设计模式:抽象类

    抽象类:用来分离主体框架和局部实现,或将共用和定制解藕.从抽象类继承必须实现所有层级未被实现的抽象方法(被装饰器abstractmethod装饰的方法),否则无法创建实例. 定义抽象类,必须继承ABC ...

  3. [Android] android.util.Log

    android.util.Log常用的方法有以下5个:Log.v() Log.d() Log.i()  Log.w() 以及 Log.e() .根据首字母对应VERBOSE,DEBUG,INFO, W ...

  4. scala-class

    object Scala { def main( args : Array[ String ] ) : Unit = { val p = , ); println( p ); p.move( , ); ...

  5. 代码:jquery自定义插件 demo

    jquery自定义插件 demo 2016-1-13 只是一个简易的示例 <script type="text/javascript" src="http://cd ...

  6. python中的expandtabs、\t

    expandtabs()将tab转换成空格,默认1个tab转成8个空格,\t制表符代表一个tab,我们也可以自定义转换成几个空格 举个例子: 1 a = "hello\tworld" ...

  7. ThinkPHP3.2项目模块结构

    Demo --项目目录 Addons --插件目录 Application --应用模块目录 Admin --后台模块 Common --后台公共函数目录 function.php (可选) Conf ...

  8. js 深度拷贝

    js 数据类型 分为2种: 基本数据类型:Undefined.Null.Boolean.Number.String 复杂数据类型:Object.Array.function 他们的区别是在内存中的存储 ...

  9. vue格式化显示json数据

    已经是json格式数据的,直接用标签 <pre></pre>展示. 参考:https://www.jianshu.com/p/d98f58267e40

  10. beego注解路由 [自定义方法]

    背景: beego生成的controller里面,默认get请求到由Get()方法处理:post请求由Post()方法处理 etc. 如果想自定义方法来处理请求,改怎么做? 直接拿beego的文档来说 ...