在Spring中使用Quartz也是很简单,Spring默认你Quartz提供了支持.
你甚至不需要添加任何额外的jar包.
资源文件:
你甚至不需要添加任何额外的jar包.
<?
xml version="1.0" encoding="UTF-8"
?>
<! DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd" >
< beans >
< bean name ="quartzScheduler"
class ="org.springframework.scheduling.quartz.SchedulerFactoryBean" >
< property name ="triggers" >
< list >
< ref bean ="cronTrigger" />
</ list >
</ property >
<!-- 指定你属性文件的位置(非必须) -->
< property name ="configLocation"
value ="classpath:org/quartz/quartz.properties" />
</ bean >
< bean id ="cronTrigger"
class ="org.springframework.scheduling.quartz.CronTriggerBean" >
< property name ="jobDetail" ref ="jobDetail" />
<!-- 朝九晚五工作时间内每半小时执行一次 -->
< property name ="cronExpression" value ="0 0/30 9-17 *,* * ?" />
</ bean >
<!-- 使用pojo做job,指定pojo和method -->
< bean id ="jobDetail"
class ="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean" >
<!-- 这时关联你的计划类 -->
< property name ="targetObject" ref ="bookStockChecker" />
<!-- 你的计划类的具体方法 -->
< property name ="targetMethod" value ="check" />
</ bean >
<!-- 图书库存检查类 -->
< bean id ="bookStockChecker" class ="org.quartz.BookStockChecker"
autowire ="byName" lazy-init ="true" >
<!-- 这里为类的属性初始值 -->
< property name ="minStock" value ="100" />
</ bean >
</ beans >
<! DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd" >
< beans >
< bean name ="quartzScheduler"
class ="org.springframework.scheduling.quartz.SchedulerFactoryBean" >
< property name ="triggers" >
< list >
< ref bean ="cronTrigger" />
</ list >
</ property >
<!-- 指定你属性文件的位置(非必须) -->
< property name ="configLocation"
value ="classpath:org/quartz/quartz.properties" />
</ bean >
< bean id ="cronTrigger"
class ="org.springframework.scheduling.quartz.CronTriggerBean" >
< property name ="jobDetail" ref ="jobDetail" />
<!-- 朝九晚五工作时间内每半小时执行一次 -->
< property name ="cronExpression" value ="0 0/30 9-17 *,* * ?" />
</ bean >
<!-- 使用pojo做job,指定pojo和method -->
< bean id ="jobDetail"
class ="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean" >
<!-- 这时关联你的计划类 -->
< property name ="targetObject" ref ="bookStockChecker" />
<!-- 你的计划类的具体方法 -->
< property name ="targetMethod" value ="check" />
</ bean >
<!-- 图书库存检查类 -->
< bean id ="bookStockChecker" class ="org.quartz.BookStockChecker"
autowire ="byName" lazy-init ="true" >
<!-- 这里为类的属性初始值 -->
< property name ="minStock" value ="100" />
</ bean >
</ beans >
资源文件:
#
============================================================================
# 配置 Main Scheduler Properties
# ============================================================================
org.quartz.scheduler.instanceName = DefaultQuartzScheduler
org.quartz.scheduler.rmi.export = false
org.quartz.scheduler.rmi.proxy = false
org.quartz.scheduler.wrapJobExecutionInUserTransaction = false
# ============================================================================
# 配置执行线程池
# ============================================================================
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 10
org.quartz.threadPool.threadPriority = 5
org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread = true
# ============================================================================
# 配置 JobStore
# ============================================================================
org.quartz.jobStore.misfireThreshold = 60000
#内存中JobStore , 服务器重启时执行记录会丢失
org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
#数据库中JobStore
#org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
#org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.MSSQLDelegate
#org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.oracle.OracleDelegate
# 配置 Main Scheduler Properties
# ============================================================================
org.quartz.scheduler.instanceName = DefaultQuartzScheduler
org.quartz.scheduler.rmi.export = false
org.quartz.scheduler.rmi.proxy = false
org.quartz.scheduler.wrapJobExecutionInUserTransaction = false
# ============================================================================
# 配置执行线程池
# ============================================================================
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 10
org.quartz.threadPool.threadPriority = 5
org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread = true
# ============================================================================
# 配置 JobStore
# ============================================================================
org.quartz.jobStore.misfireThreshold = 60000
#内存中JobStore , 服务器重启时执行记录会丢失
org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
#数据库中JobStore
#org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
#org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.MSSQLDelegate
#org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.oracle.OracleDelegate