java框架---->quartz整合spring(一)
今天我们学习一下quartz的定时器的使用。年轻时我们放弃,以为那只是一段感情,后来才知道,那其实是一生。
quartz的简单实例
测试的项目结构如下:
一、pom.xml中定义quartz的依赖
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.3</version>
</dependency>
二、定义配置文件quartz.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- 要调用的工作类 -->
<bean id="quartzJob" class="com.linux.huhx.quartz.QuartzJob"></bean>
<!-- 定义调用对象和调用对象的方法 -->
<bean id="jobtask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 调用的类 -->
<property name="targetObject" ref="quartzJob" />
<!-- 调用类中的方法 -->
<property name="targetMethod" value="work" />
</bean>
<!-- 定义触发时间 -->
<bean id="doTime" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="jobtask"/>
<!-- cron表达式 -->
<property name="cronExpression" value="10,15,20 * * * * ?" />
</bean>
<!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序 -->
<bean id="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list><ref bean="doTime"/></list>
</property>
</bean>
</beans>
三、定义任务的执行主体类QuartzJob
package com.linux.huhx.quartz; import org.springframework.context.Lifecycle;
import org.springframework.context.SmartLifecycle; /**
* Created by huhx on 2017-05-22.
*/
public class QuartzJob implements Lifecycle, SmartLifecycle { public void work() {
System.out.println("Quartz的任务调度!!!");
} @Override
public void start() {
System.out.println("I am start");
} @Override
public void stop() {
System.out.println("I am stop");
} @Override
public boolean isRunning() {
return false;
} @Override
public boolean isAutoStartup() {
return true;
} @Override
public void stop(Runnable callback) { } @Override
public int getPhase() {
return 0;
}
}
四、定义测试的主体类Main
public class Main {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("config/quartz.xml");
}
}
五、运行的结果如下:
I am start
::05.864 [main] DEBUG o.s.c.s.DefaultLifecycleProcessor - Successfully started bean 'quartzJob'
::05.864 [main] INFO o.s.c.s.DefaultLifecycleProcessor - Starting beans in phase
::05.864 [main] DEBUG o.s.c.s.DefaultLifecycleProcessor - Starting bean 'startQuertz' of type [class org.springframework.scheduling.quartz.SchedulerFactoryBean]
::05.865 [main] INFO o.s.s.quartz.SchedulerFactoryBean - Starting Quartz Scheduler now
::05.865 [main] INFO org.quartz.core.QuartzScheduler - Scheduler startQuertz_$_NON_CLUSTERED started.
::05.865 [main] DEBUG o.s.c.s.DefaultLifecycleProcessor - Successfully started bean 'startQuertz'
::05.870 [main] DEBUG o.s.c.e.PropertySourcesPropertyResolver - Could not find key 'spring.liveBeansView.mbeanDomain' in any property source
::05.881 [startQuertz_QuartzSchedulerThread] DEBUG o.quartz.core.QuartzSchedulerThread - batch acquisition of triggers
::10.010 [startQuertz_Worker-] DEBUG org.quartz.core.JobRunShell - Calling execute on job DEFAULT.jobtask
::10.010 [startQuertz_QuartzSchedulerThread] DEBUG o.quartz.core.QuartzSchedulerThread - batch acquisition of triggers
Quartz的任务调度!!!
::15.001 [startQuertz_Worker-] DEBUG org.quartz.core.JobRunShell - Calling execute on job DEFAULT.jobtask
::15.001 [startQuertz_QuartzSchedulerThread] DEBUG o.quartz.core.QuartzSchedulerThread - batch acquisition of triggers
Quartz的任务调度!!!
::20.001 [startQuertz_QuartzSchedulerThread] DEBUG o.quartz.core.QuartzSchedulerThread - batch acquisition of triggers
::20.001 [startQuertz_Worker-] DEBUG org.quartz.core.JobRunShell - Calling execute on job DEFAULT.jobtask
Quartz的任务调度!!!
::45.140 [startQuertz_QuartzSchedulerThread] DEBUG o.quartz.core.QuartzSchedulerThread - batch acquisition of triggers
::10.002 [startQuertz_Worker-] DEBUG org.quartz.core.JobRunShell - Calling execute on job DEFAULT.jobtask
::10.002 [startQuertz_QuartzSchedulerThread] DEBUG o.quartz.core.QuartzSchedulerThread - batch acquisition of triggers
Quartz的任务调度!!!
::15.001 [startQuertz_Worker-] DEBUG org.quartz.core.JobRunShell - Calling execute on job DEFAULT.jobtask
::15.001 [startQuertz_QuartzSchedulerThread] DEBUG o.quartz.core.QuartzSchedulerThread - batch acquisition of triggers
Quartz的任务调度!!!
::20.001 [startQuertz_QuartzSchedulerThread] DEBUG o.quartz.core.QuartzSchedulerThread - batch acquisition of triggers
::20.001 [startQuertz_Worker-] DEBUG org.quartz.core.JobRunShell - Calling execute on job DEFAULT.jobtask
Quartz的任务调度!!!
::47.376 [startQuertz_QuartzSchedulerThread] DEBUG o.quartz.core.QuartzSchedulerThread - batch acquisition of triggers
::10.011 [startQuertz_Worker-] DEBUG org.quartz.core.JobRunShell - Calling execute on job DEFAULT.jobtask
Quartz的任务调度!!!
::10.012 [startQuertz_QuartzSchedulerThread] DEBUG o.quartz.core.QuartzSchedulerThread - batch acquisition of triggers
::15.001 [startQuertz_Worker-] DEBUG org.quartz.core.JobRunShell - Calling execute on job DEFAULT.jobtask
::15.001 [startQuertz_QuartzSchedulerThread] DEBUG o.quartz.core.QuartzSchedulerThread - batch acquisition of triggers
Quartz的任务调度!!!
::20.002 [startQuertz_QuartzSchedulerThread] DEBUG o.quartz.core.QuartzSchedulerThread - batch acquisition of triggers
::20.002 [startQuertz_Worker-] DEBUG org.quartz.core.JobRunShell - Calling execute on job DEFAULT.jobtask
Quartz的任务调度!!!
.............
友情链接
java框架---->quartz整合spring(一)的更多相关文章
- JavaWeb_(Mybatis框架)MyBatis整合Spring框架
MyBatis + Spring整合开发 a)使用Spring容器用单例模式管理Mybatis的sqlSessionFactory:b)使用Spring管理连接池.数据源等:c)将Dao/Mapper ...
- Java框架----SSH整合回顾
1,新建工程,类型为Web Project,设置默认编码为UTF-8,并创建如下文件夹 1,Source Folder 1,src 项目源码 2,config 配置文件 3,test 单元测试 2,普 ...
- JMS(java消息服务)整合Spring项目案例
转载自云栖社区 摘要: Sprng-jms消息服务小项目 所需的包: spring的基础包 spring-jms-xx包 spring-message–xx包 commons-collection-x ...
- java之mybatis整合spring
这篇讲解spring+mybatis的整合. 目录结构: 一. 整合spring的第一种方法 1. 新建 java 项目 : spring_mybatis 2.导入jar 包-----spring和m ...
- quartz整合spring框架service层对象注入为null解决方案
Job实现类代码 package cn.itcast.quartz; import org.quartz.Job; import org.quartz.JobExecutionContext; imp ...
- JAVA 框架 / SSM / SSM SPRING+SPING MVC + MYBATIS 三大框架整合详细步骤
http://how2j.cn/k/ssm/ssm-tutorial/1137.html
- java框架---->quartz的使用(一)
Quartz 是个开源的作业调度框架,为在 Java 应用程序中进行作业调度提供了简单却强大的机制.今天我们就来学习一下它的使用,这里会分篇章对它进行介绍.只是希望能有个人,在我说没事的时候,知道我不 ...
- 三大框架SSH整合
三大框架SSH整合 -------------------------------Spring整合Hibernate------------------------------- 一.为什么要整合Hi ...
- 2020年9大顶级Java框架
诞生于1995年的Java,目前已在134,861个网站上广泛使用,包括ESPN.SnapDeal等.在其24年的成长史中,Java已经证明了自己是用于自定义软件开发的顶级通用编程语言. Java广泛 ...
随机推荐
- 怎样编写socket套接字
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/ ...
- jquery树形表格实现方法
效果图 准备步骤: 具体使用的Dome可以在这个位置下载 http://download.csdn.net/detail/jine515073/7986227 1.引入jquery.treeTable ...
- AJAX 实时读取输入文本(php)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 【转】java基本数据类型vs封装数据类型
1.基本概念 说java是面向对象的语言是正确的,但是她不纯,基本数据类型就不是对象. 基本数据类型可以大致分为三类:数据型:int.short.long.byte.float.double字符型:c ...
- Semi-Supervised Classification with Graph Convolutional Networks
Kipf, Thomas N., and Max Welling. "Semi-supervised classification with graph convolutional netw ...
- 科技发烧友之单反佳能700d中高端
http://detail.zol.com.cn/series/15/15795_1.html 前三 佳能 尼康 索尼 佳能5d 1.6w 佳能70d 5k 佳能6d 9k 佳能d7100 5k 尼康 ...
- caffe源代码分析--Blob类代码研究
作者:linger 转自须注明转自:http://blog.csdn.net/lingerlanlan/article/details/24379689 数据成员 shared_ptr<Sync ...
- 【Java面试题】57 short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
Java规范有这样的规则 [ 1.高位转低位需要强制转换 2.低位转高位自动转. ] short s1 = 1; s1 = s1 + 1;有什么错? 答: i 是int 型 s1 short型 通 ...
- 【Python】多线程2
threading模块 import time import random import threading class Inclass: def __init__(self): print 'Inc ...
- 扒一扒MathType不为人知的技巧
MathType作为一款编辑数学公式的神器,很多人在使用它时只是很简单地使用了一些最基本的模板,很多功能都没有使用.MathType功能比你想象中的大很多,今天我们就来扒一扒MathType那些不为人 ...