Spring3.0.5與Quartz的整合實現定時任務調度

最近在研究Spring中的定時任務功能,最好的辦法固然是使用Quartz來實現。對於一個新手來講,花了我很多時間,這裏我寫個筆記,給你們參考。 
我使用的是Maven來管理項目,須要的Jar包我給你們貼出來。 
quartz-1.8.5.jar 
commons-logging.jar 
spring-core-3.0.5.RELEASE.jar 
spring-beans-3.0.5.RELEASE.jar 
spring-context-3.0.5.RELEASE.jar 
spring-context-support-3.0.5.RELEASE.jar  
spring-asm-3.0.5.RELEASE.jar 
spring-expression-3.0.5.RELEASE.jar 
spring.transaction-3.0.5.RELEASE.jar 

spring-web-3.0.5.RELEASE.jar web

<!-- 要調用的工做類 -->
	 <bean id="quartzJob" class="com.task.Task" />
	 
	 <!-- 定義調用對象和調用對象的方法 -->
	 <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>0 30,30,30,30 9,11,14,17 ? * MON-FRI</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>
相關文章
相關標籤/搜索