springboot集成quartz注入bean的问题

等天亮时分Time 2017-07-13 07:13:12

springboot集成quartz注入bean一直出错,运行的时候始终报null的错误

也是参照网上的弄得,但是自己弄了之后还是一直报错
因为springboot是没有xml配置的,都是通过注解来的,也不太清楚我是哪里出问题了,还希望有大佬帮忙讲解下,也可以通过邮箱联系853966239@qq.com
...全文
3503 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
还有就是手动获取spring的ApplicationContext和bean对象
这个具体的详情大家可以通过百度查看,关于我这个问题,我自己的解决办法是



这样就能获取了
宿_ 2017-11-11
  • 打赏
  • 举报
回复
楼主,解决方案有没有呀
鲨鱼也是鱼 2017-11-11
  • 打赏
  • 举报
回复
你的任务类不受spring容器管理,所以使用了注解没用,需要通过其他方法从spring容器中获取需要的bean 可以写一个工具类 实现ApplicationContextAware接口直接获取applicationContext变量,通过getBean方法获取需要的bean
zqc5242519 2017-08-18
  • 打赏
  • 举报
回复
问题已解决。你帮我发到 http://blog.csdn.net/u012907049/article/details/73801122#reply 这把。 第一步: 注入 @Autowired @Qualifier("schedulerFactoryBean") private SchedulerFactoryBean schedulerFactoryBean; 第二步: 然后在addJob 中改SchedulerFactory的创建方式 // 通过SchedulerFactory获取一个调度器实例 //SchedulerFactory sf = new StdSchedulerFactory(); Scheduler sched = schedulerFactoryBean.getScheduler(); //sf.getScheduler(); 第三步: public class JobFactory extends SpringBeanJobFactory implements ApplicationContextAware { private transient AutowireCapableBeanFactory beanFactory; @Override public void setApplicationContext(final ApplicationContext context) { beanFactory = context.getAutowireCapableBeanFactory(); } @Override protected Object createJobInstance(final TriggerFiredBundle bundle) throws Exception { final Object job = super.createJobInstance(bundle); beanFactory.autowireBean(job); return job; } } 第四步: SchedulerConfig factory.setOverwriteExistingJobs(true); factory.setJobFactory(jobFactory);
zqc5242519 2017-08-18
  • 打赏
  • 举报
回复
准备声援你的。“你的博客账号已被封杀,不能发表评论!”是个什么情况?
zqc5242519 2017-08-18
  • 打赏
  • 举报
回复
同问,我也碰到了同样的问题。无论是用静态 ConfigurableApplicationContext:getBean。还是用JobFactory extends SpringBeanJobFactory implements ApplicationContextAware。都无法解决。
aiya0715 2017-08-18
  • 打赏
  • 举报
回复
引用 4 楼 zqc5242519 的回复:
准备声援你的。“你的博客账号已被封杀,不能发表评论!”是个什么情况?
多谢!
aiya0715 2017-08-18
  • 打赏
  • 举报
回复

解决要点 这里需要注意需要注意数据源问题 得注入spring的数据源
还望楼主完善一下该博客 以让更多人收益 再次感谢楼主
@Component
public class JobFactory extends SpringBeanJobFactory implements ApplicationContextAware {
private transient AutowireCapableBeanFactory beanFactory;
@Override
public void setApplicationContext(final ApplicationContext context) {
beanFactory = context.getAutowireCapableBeanFactory();
}

@Autowired
    private JobFactory jobFactory;

    @Bean(name="schedulerFactoryBean")
    public SchedulerFactoryBean schedulerFactoryBean( @Qualifier("primaryDataSource")DataSource dataSource) throws IOException {
        SchedulerFactoryBean factory = new SchedulerFactoryBean();
        factory.setOverwriteExistingJobs(true);
        factory.setJobFactory(jobFactory);
        factory.setDataSource(dataSource);
        factory.setQuartzProperties(quartzProperties());
        return factory;
    }
	
	
 @Autowired
    @Qualifier("schedulerFactoryBean")
    private SchedulerFactoryBean schedulerFactoryBean;
 Scheduler sched = schedulerFactoryBean.getScheduler();
我爱娃哈哈 2017-07-13
  • 打赏
  • 举报
回复
这个定时器注入是有问题的,好像调用的时候可以把需要注入的service传到job类里面,直接注入是不行的
我爱娃哈哈 2017-07-13
  • 打赏
  • 举报
回复
springboot自己就有定时器啊,为毛要集成这个

50,499

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧