撸了今年阿里、头条和美团的面试,我有一个重要发现.......>>>

ApplicationContextUtil.java

package org.job;import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;/*** Created with IntelliJ IDEA.定时器的执行优先于注入 所以需要创建一个类,用来获取service* User: vincent* Date: 2017/11/8* Time: 15:39*/
public class ApplicationContextUtil implements ApplicationContextAware {private static ApplicationContext applicationContext;public static ApplicationContext getApplicationContext() {return applicationContext;}@Overridepublic void setApplicationContext(ApplicationContext applicationContext) throws BeansException {ApplicationContextUtil.applicationContext = applicationContext;}public static Object getBean(String beanName){return applicationContext.getBean(beanName);}}

JobFactory.java

package org.job;import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;/*** Created with IntelliJ IDEA.* User: vincent* Date: 2017/10/30* Time: 17:00*/
@Configuration
public class JobFactory  {@Bean(name = "jobScheduler")public Scheduler getScheduler() {SchedulerFactory schedulerfactory = new StdSchedulerFactory();Scheduler scheduler = null;try {scheduler = schedulerfactory.getScheduler();} catch (Exception e) {e.printStackTrace();}return scheduler;}}

PersonService.java

@Service("pointService")
public class PointServiceImpl implements PointService {@AutowiredPersonDao personDao;public getPersonList(){doSometing();}}

MyJob.java

@DisallowConcurrentExecution
public class MyJob implements Job {@Overridepublic void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {//System.out.println(DateHelper2.getCurrentDateTimeFormat());try {Thread.sleep(2000);PointService pointService = (PersonService)ApplicationContextUtil.getBean("personService");System.out.println(personService);personService.updateGlobalPointValue1();} catch (InterruptedException e) {e.printStackTrace();}}public MyJob() {}
}

JobServiceImpl.java

package org.taian.service.impl;import org.quartz.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import org.taian.service.JobService;import java.util.List;/*** Created with IntelliJ IDEA.* User: vincent* Date: 2017/11/9* Time: 14:15*/
@Service
public class JobServiceImpl implements JobService {@Autowired@Qualifier("jobScheduler")private Scheduler scheduler;@Overridepublic void doJob() {//触发器JobDetail job = JobBuilder.newJob(MyJob.class).withIdentity("job1", "jgroup1").build();Trigger trigger = TriggerBuilder.newTrigger().withIdentity("simpleTrigger", "triggerGroup").withSchedule(CronScheduleBuilder.cronSchedule("1-30 * * * * ? *")).startNow().build();try {//把作业和触发器注册到任务调度中scheduler.scheduleJob(job, trigger);//启动调度scheduler.start();Thread.sleep(5000);List<JobExecutionContext> currentlyExecutingJobs = scheduler.getCurrentlyExecutingJobs();System.out.println(currentlyExecutingJobs.size());for (JobExecutionContext jobExecutionContext:currentlyExecutingJobs){System.out.println(jobExecutionContext.getJobDetail().getKey());}} catch (Exception e) {e.printStackTrace();}}
}

controller.java

@ResponseBody@RequestMapping(value = "doQuartz", method = RequestMethod.GET)public String doQuartz(){jobService.doJob();return "a";}

定时器注入spring相关推荐

  1. Servlet自动注入Spring容器中的Bean解决方法

    Servlet自动注入Spring容器中的Bean解决方法 参考文章: (1)Servlet自动注入Spring容器中的Bean解决方法 (2)https://www.cnblogs.com/jank ...

  2. 将经过身份验证的用户注入Spring MVC @Controllers

    可以使用@AuthenticationPrincipal批注和AuthenticationPrincipalArgumentResolver这是Spring MVS MethodArgumentRes ...

  3. spring注入普通java类_普通java类如何取得注入spring Ioc容器的对象

    [除了使用XML配置外,还可以选择使用基于注解(annotation)的配置方式,其依赖于字节码来织入组件.注解注入在XML注入之前完成,因此在XML配置中可以重载注解注入的属性. 一.建一个Spri ...

  4. Quartz业务类无法注入Spring对象问题

    tags: 解决错误, titile: Quartz业务类无法注入Spring对象问题 Quartz业务类无法注入Spring对象问题 在刚开始遇到的时候还以为是Spring配置哪里错误了,结果搞了那 ...

  5. strtus中action注入spring bean

    Action 中注入Spring 管理的Bean ProductAction 是一个 Action,处理页面的请求,其中的save()方法使用到了业务层 ProductService对象,Spring ...

  6. 解决无法注入spring容器,获取不到spring容器中的bean问题

    解决无法注入spring容器,获取不到spring容器中的bean问题 前两天工作中遇到一个问题,收到的需求是根据logbak日志实现通过过滤错误日志发送预警邮件到邮箱,logback自定义实现类如下 ...

  7. 关于mapper接口注入spring容器

    mapper是接口,而接口时不能注入spring容器的,要注入就需要接口有对应的实现类,注入的应该是实现类而不是接口 而在spring中,导入MyBatis-Spring包之后,MyBatis-Spr ...

  8. 在不受Spring管理的类中注入spring 管理的对象

    前几天在做一个任务时,需要在一个普通的java类(不受Spring管理的类)中,调用 spring data jpa的某个xxxReponsitory 接口,同时需要读取properties 文件中的 ...

  9. java定时器、Spring定时器和Quartz定时器

    当前java程序中能够实现定时的主要有三种方式,分别是:java定时器,spring定时器,quartz定时器. 下面依次讲讲他们的应用! java定时器的应用    其实java很早就有解决定时器任 ...

最新文章

  1. NLP研究索引神器,3000+代码库,一键查找论文、GitHub库
  2. 开发完成的springboot项目扩展 swagger
  3. 《淘宝店铺装修与促销设计宝典》一6.1 设计全面的店铺客服区
  4. 【消息队列】kafka是如何保证消息不被重复消费的
  5. 广州技术沙龙第 4 期报名开始!
  6. [html] 使用div+css进行布局有什么好处?
  7. 在html中用表单插入servlet 怎么写servlet的地址,java web中servlet、jsp、html 互相访问的路径问题。...
  8. 使用ubuntu系统中遇到的问题及解决方案
  9. linux判断值相等_Shell字符串比较相等、不相等方法小结【转】
  10. 如何动态修改select的值_SQL成长记录02-SELECT语句
  11. Installshield停止操作系统进程的代码 --IS6及以上版本适用
  12. 计算机网络课程设计个人总结,计算机网络课程设计心得体会.doc
  13. Matlab将散点绘制为平滑曲线的简单方法
  14. 以太网详解(一)-MAC/PHY/MII/RMII/GMII/RGMII基本介绍
  15. win10的WLAN/Wifi不见了、网络适配器黄色感叹号、网络中心的更改适配器选项没有连接
  16. 无线路由器如何建立ftp服务器,利用无线路由器建立FTP服务器
  17. Java 性能优化之——缓冲区如何让代码加速
  18. python 智能识别 商品_python人工智能-图像识别
  19. Open Inventor 10.11.1 Crack
  20. SUSE Linux Enterprise助力企业数字化转型

热门文章

  1. Flex学习记录(一)——MXML基本知识
  2. Dojo-API介绍
  3. YOLO系列算法精讲:从yolov1至yolov4的进阶之路(呕心沥血2万字超全整理,建议收藏!)
  4. 《大型网站技术架构》读书笔记之七:随需应变之网站的可扩展架构
  5. Go使用HTTPClient发送Get Post请求
  6. Linux的Configure详情
  7. composer 完整路径才能访问_一份完整的运营方案策划思路,拿走不谢(精华版)
  8. Mac下SourceTree导出更新文件
  9. qtcreator 自动进入反汇编_1.2 Qt Creator简介
  10. laravel+php+支付功能,laravel+微信支付源码