Spring中Quartz的使用

1.环境 Spring 3.1,Quartz 1.6.0(经测试Spring不支持最新的Quartz 2.x)
2.spring提供了创建调度任务的对应的Bean,首先加载调度任务的配置文件,web.xml中指定需加载的配置文件路径(例中Quartz的bean配置信息与其它bean不在同一个配置文件中):
	<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/beans.xml /WEB-INF/Quartz.xml
</param-value>
</context-param>

注:通过监听器启动spring容器代码段:
	<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>

调度配置文件Quartz.xml内容(以定时发送邮件操作为例):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>

<!-- 包含调度执行的方法 -->
<bean id="sendMailJob"
class="com.my.mailsend.quartz.SendMailJob" />

<!-- 调度任务详情 -->
<bean id="sendMailJobDetail"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 指定任务执行时调用的方法及所在类 -->
<property name="targetObject">
<ref bean="sendMailJob"></ref>
</property>
<property name="targetMethod">
<value>doJob</value>
</property>
</bean>

<!-- 触发器任务:指定调度任务、执行时间及频率 -->
<bean id="sendMailTrigger"
class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
<ref bean="sendMailJobDetail"></ref>
</property>
<!-- 在属性文件中配置,格式为:email.send.cronExpression = 0 03/30 * * * ? -->
<property name="cronExpression">
<value>${email.send.cronExpression}</value>
</property>
</bean>

<!-- 调度任务列表:指定触发器任务列表 -->
<bean id="quartz"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="sendMailTrigger"></ref>
</list>
</property>
</bean>

</beans>

其中 SendMailJob 中的doJob方法代码如下(仅仅生成bo实例,执行具体的业务方法):
    // 根据邮件发送任务列表进行邮件发送的任务调度方法
public void doJob() {

WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext();
MailSendBo bo = (MailSendBo) wac.getBean("mailSendBo");

bo.doSendMail();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值