Quartz 定时器通过XML配置二种方式spring

案例所用Quartz架包:quartz-2.2.1.jar

Spring集成Quartz的配置文件

<?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">

    <!-- 配置Job类 -->
    <bean id="myJob" class="quartz.MyJobTest"></bean>

    <!-- Quartz 第一种方式 -->
    <!--  配置JobDetail -->
    <bean id="springQtzJobMethod" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <!-- 执行目标job  -->
        <property name="targetObject" ref="myJob"></property>
        <!-- 要执行的方法  -->
        <property name="targetMethod" value="execute"></property>
    </bean>

	<!-- Quartz 第二种方式 -->
	<!-- 配置JobDetail -->
     <bean id="jobDetail" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
       <property name="jobClass" value="quartz.MyJob2"></property>
        <property name="durability" value="true"></property>
    </bean>


	
    <!-- 配置tirgger触发器  -->
    <bean id="cronTriggerFactoryBean" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
        <!-- jobDetail 切换-->
<!--         <property name="jobDetail" ref="springQtzJobMethod"></property> -->
		 <property name="jobDetail" ref="jobDetail"></property>
        <!-- cron表达式,执行时间  每5秒执行一次 -->
        <property name="cronExpression" value="0/5 * * * * ?"></property>
    </bean>

    <!-- 配置调度工厂 如果将lazy-init='false'那么容器启动就会执行调度程序 -->
    <bean id="springJobSchedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="triggers">
            <list>
                <ref bean="cronTriggerFactoryBean"></ref>
            </list>
        </property>

    </bean>
</beans>

 第一种方式

public class MyJobTest {
	
	  public void execute() {
		  System.out.println("Spring 集成 Quartz 的第一种方式");
	    }
}
第二种方式继承QuartzJobBean
package quartz;

import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.QuartzJobBean;

/**
 * @Description: 配置文件中使用JobDetailBean,这是业务Job需要继承QuartzJobBean
 * @author Administrator
 *
 */
public class MyJob2 extends QuartzJobBean  {

	@Override
	protected void executeInternal(JobExecutionContext arg0) throws JobExecutionException {
		// TODO Auto-generated method stub
		 System.out.println("Spring 集成 Quartz 的第二种方式");
	}
}
测试类
public class Test {

	public static void main(String[] args) {
		 // 启动Spring 容器
        ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext(
                        "classpath:spring-quartz.xml");
        System.out.println("initContext successfully");
	}
	
}

猜你喜欢

转载自blog.csdn.net/wanwei1987/article/details/80626519
今日推荐