1. package com.pkfare.task.manage.config;
  2.  
  3. import org.quartz.spi.TriggerFiredBundle;
  4. import org.springframework.beans.BeansException;
  5. import org.springframework.context.ApplicationContext;
  6. import org.springframework.context.ApplicationContextAware;
  7. import org.springframework.context.annotation.Configuration;
  8. import org.springframework.scheduling.quartz.SpringBeanJobFactory;
  9. import org.springframework.stereotype.Component;
  10.  
  11. @Configuration
  12. @Component
  13. public class JobBeanJobFactory extends SpringBeanJobFactory implements ApplicationContextAware {
  14.  
  15. private ApplicationContext applicationContext;
  16.  
  17. public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
  18. this.applicationContext = applicationContext;
  19. }
  20.  
  21. @Override
  22. protected Object createJobInstance(TriggerFiredBundle bundle) throws Exception {
  23. Object jobInstance = super.createJobInstance(bundle);
  24. //把Job交给Spring来管理,这样Job就能使用由Spring产生的Bean了
  25. applicationContext.getAutowireCapableBeanFactory().autowireBean(jobInstance);
  26. return jobInstance;
  27. }
  28.  
  29. }
  1. import com.pkfare.task.manage.service.impl.SelectTaskServiceImpl;
  2. import com.pkfare.task.manage.util.ReadConfigUtil;
  3. import com.pkfare.task.manage.job.MainJob;
  4. import org.quartz.JobDetail;
  5. import org.quartz.impl.triggers.CronTriggerImpl;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.beans.factory.annotation.Configurable;
  8. import org.springframework.context.annotation.Bean;
  9. import org.springframework.scheduling.quartz.SchedulerFactoryBean;
  10.  
  11. import javax.sql.DataSource;
  12. import java.text.ParseException;
  13.  
  14. import static org.quartz.JobBuilder.newJob;
  15.  
  16. /**
  17. * Created by llq on 2016/10/28.
  18. */
  19. @Configurable
  20. public class QuartzConfig {
  21.  
  22. @Autowired
  23. private JobBeanJobFactory jobBeanJobFactory;
  24.  
  25. @Autowired
  26. SelectTaskServiceImpl selectTaskService;
  27.  
  28. @Autowired
  29. @Bean
  30. public SchedulerFactoryBean SchedulerFactoryBean(DataSource dataSource) throws ParseException {
  31.  
  32. SchedulerFactoryBean bean = new SchedulerFactoryBean();
  33. bean.setDataSource(dataSource);
  34.  
  35. bean.setQuartzProperties(ReadConfigUtil.readConfig("quartz.properties"));
  36. bean.setSchedulerName("CRMscheduler");
  37. bean.setStartupDelay(3);
  38. bean.setApplicationContextSchedulerContextKey("applicationContextKey");
  39. bean.setOverwriteExistingJobs(true);
  40. bean.setAutoStartup(true);
  41. bean.setJobFactory(jobBeanJobFactory);
  42.  
  43. return bean;
  44. }
  45.  
  46. }

http://www.blogjava.net/paulwong/archive/2014/11/14/420104.html

quarz spring boot的更多相关文章

  1. 国内最全的Spring Boot系列之二

    历史文章 <国内最全的Spring Boot系列之一> 视频&交流平台 SpringBoot视频:http://t.cn/R3QepWG Spring Cloud视频:http:/ ...

  2. 玩转spring boot——快速开始

    开发环境: IED环境:Eclipse JDK版本:1.8 maven版本:3.3.9 一.创建一个spring boot的mcv web应用程序 打开Eclipse,新建Maven项目 选择quic ...

  3. 【微框架】之一:从零开始,轻松搞定SpringCloud微框架系列--开山篇(spring boot 小demo)

    Spring顶级框架有众多,那么接下的篇幅,我将重点讲解SpringCloud微框架的实现 Spring 顶级项目,包含众多,我们重点学习一下,SpringCloud项目以及SpringBoot项目 ...

  4. 玩转spring boot——开篇

    很久没写博客了,而这一转眼就是7年.这段时间并不是我没学习东西,而是园友们的技术提高的非常快,这反而让我不知道该写些什么.我做程序已经有十几年之久了,可以说是彻彻底底的“程序老炮”,至于技术怎么样?我 ...

  5. 玩转spring boot——结合redis

    一.准备工作 下载redis的windows版zip包:https://github.com/MSOpenTech/redis/releases 运行redis-server.exe程序 出现黑色窗口 ...

  6. 玩转spring boot——AOP与表单验证

    AOP在大多数的情况下的应用场景是:日志和验证.至于AOP的理论知识我就不做赘述.而AOP的通知类型有好几种,今天的例子我只选一个有代表意义的“环绕通知”来演示. 一.AOP入门 修改“pom.xml ...

  7. 玩转spring boot——结合JPA入门

    参考官方例子:https://spring.io/guides/gs/accessing-data-jpa/ 接着上篇内容 一.小试牛刀 创建maven项目后,修改pom.xml文件 <proj ...

  8. 玩转spring boot——结合JPA事务

    接着上篇 一.准备工作 修改pom.xml文件 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=&q ...

  9. 玩转spring boot——结合AngularJs和JDBC

    参考官方例子:http://spring.io/guides/gs/relational-data-access/ 一.项目准备 在建立mysql数据库后新建表“t_order” ; -- ----- ...

随机推荐

  1. Node.js 历史

    Node.js 是在 2009年5月份创建的,是属于典型的 Git 和 GitHub 时代最初孕育的项目.另外需要先说明一点,那就是回顾 Node.js 的历史,并不是仅仅为了给大家回味,而是想找到在 ...

  2. iOS开发 - Protocol协议及委托代理(Delegate)

    因为Object-C是不支持多继承的,所以很多时候都是用Protocol(协议)来代替.Protocol(协议)只能定义公用的一套接口,但不能提供具体的实现方法.也就是说,它只告诉你要做什么,但具体怎 ...

  3. jquery解析xml,获取xml标签名

    先给一个简单的XML,结构如下 <?xml version="1.0" encoding="uft-8" ?> <msg> <ro ...

  4. /pentest/enumeration/irpas/itrace

    /pentest/enumeration/irpas/itrace 追踪防火墙内部路由

  5. GoAccess自动分割Nginx日志

    GoAccess 是一款开源的网站日志实时分析工具.GoAccess 的工作方式很容易理解,就是读取和解析 Apache/Nginx/Lighttpd 的访问日志文件 access log,然后以更友 ...

  6. 禁止MySQL开机自动启动的方法

    这几天发现电脑卡机变慢了,还有一些卡,发现每次开机MySQL都会自动启动(明明我安装的时候选择了不开机自启,任务管理器启动列表中也没有,但就是自启了...) 1.打开服务列表 有两种方法,一是快捷键 ...

  7. js生成指定范围内随机数

    其现方法的核心是JavaScript的Math对象.代码如下: <!DOCTYPE html> <html lang="en"> <head> ...

  8. React组件间通信

    众所周知,ReactJS组件与组件之间的通信是一个难点.在React实际开发中,父子组件之间的传值是比较常见的,刚入门的小伙伴很容易被组件之间的通信绕懵. 今天花了点时间总结了一下React父子组件之 ...

  9. 动态代理--Cglib

    JDK 的Proxy 实现,需要代理对象实现接口: package com.utils; import java.lang.reflect.InvocationHandler; import java ...

  10. 谈谈TCP的四次挥手

    “挥手”是为了终止连接,TCP四次挥手的流程图如下: (在socket编程中,可以由客户端或服务端进行close操作来进行) 下面的图是由客户端主动关闭连接 MSL是什么?最长报文段寿命 ------ ...