欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

spring+quartz例子

程序员文章站 2022-05-10 18:22:04
...
测试类
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;

public class TestMain {
	/**

	 * @param args

	 */
	public static void main(String[] args) {
        System.out.println("start.");
        String path = "D:\\JBuilder2007\\workspace\\tt\\quartz.xml";
        ApplicationContext context = new FileSystemXmlApplicationContext(path);
//        BeanFactory factory = new XmlBeanFactory(new FileSystemResource(path));  
        //如果配置文件中将startQuertz bean的lazy-init设置为false 则不用实例化
//        factory.getBean("startQuertz");
        System.out.println("end..");
    }
}

配置文件
<?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="quartzJob" class="test.quartz.QuartzJob"></bean>
	<!-- 定义调用对象和调用对象的方法 -->
	<bean id="jobtask"
		class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
		<!-- 调用的类 -->
		<property name="targetObject">
			<ref bean="quartzJob" />
		</property>
		<!-- 调用类中的方法 -->
		<property name="targetMethod">
			<value>work</value>
		</property>
	</bean>
	<!-- 定义触发时间 -->
	<bean id="doTime"
		class="org.springframework.scheduling.quartz.CronTriggerBean">
		<property name="jobDetail">
			<ref bean="jobtask" />
		</property>
		<!-- cron表达式 -->
		<property name="cronExpression">
			<value>10,15,20,25,30,35,40,45,50,55 * * * * ?</value>
		</property>
	</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>

public class QuartzJob {
	public void work() {
		System.out.println("run...");
	}
}