}
2.接下來的在spring 裡配置:
<bean id="methodInvokingJobDetail">
<property name="targetObject">
<ref bean="taskJob" />
</property>
<property name="targetMethod">
<value>SayHello</value>
</property>
</bean>
<!-- 配置觸發器-->
<bean id="cronTrigger">
<!-- 這裡不可以直接在屬性jobDetail中引用taskJob,因為他要求的是一個jobDetail類型的對象,所以我們得透過MethodInvokingJobDetailFactoryBean來轉一下-->
<property name="jobDetail">
<ref bean="methodInvokingJobDetail" />
</property>
<!-- 每天的8點到21點每隔1分鐘觸發,具體說明請見附錄-->
<property name="cronExpression">
<value>0 * 08-21 * * ?</value>
</property>
</bean>
<bean>
<!-- 新增觸發器-->
<property name="triggers">
<list>
<ref local="cronTrigger" />
</list>
</property>
</bean>
</beans>
3.測試執行的類,只要把spring的設定檔載入了就可以看到定時任務運行了。
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestApp {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("載入spring設定檔....");
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
System.out.println("載入設定檔完成!");
// ApplicationContext context2 = new ClassPathXmlApplicationContext("test/timerTask/quartzTimer.xml");
}
}
如果要在web專案中執行的話還要在web.xml 中加入如下程式碼:
以下是網上摘抄的一些說明:
字段允許值允許的特殊字元秒數0-59 , - * /
分0-59 , - * /
小時0-23 , - * /
日期1-31 , - * ? / LWC
月份1-12 或JAN-DEC , - * /
星期1-7 或SUN-SAT , - * ? / LC #
年(可選)留空, 1970-2099 , - * /
表達式意義
"0 0 12 * * ?" 每天中午12點觸發
"0 15 10 ? * *" 每天上午10:15觸發
"0 15 10 * * ?" 每天上午10:15觸發
"0 15 10 * * ? *" 每天上午10:15觸發
"0 15 10 * * ? 2005" 2005年的每天上午10:15觸發
"0 * 14 * * ?" 在每天下午2點到下午2:59期間的每1分鐘觸發
"0 0/5 14 * * ?" 在每天下午2點到下午2:55期間的每5分鐘觸發
"0 0/5 14,18 * * ?" 在每天下午2點到2:55期間和下午6點到6:55期間的每5分鐘觸發
"0 0-5 14 * * ?" 在每天下午2點到下午2:05期間的每1分鐘觸發
"0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:10和2:44觸發
"0 15 10 ? * MON-FRI" 週一至週五的上午10:15觸發
"0 15 10 15 * ?" 每月15日上午10:15觸發
"0 15 10 L * ?" 每月最後一日的上午10:15觸發
"0 15 10 ? * 6L" 每個月的最後一個星期五上午10:15觸發
"0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最後一個星期五上午10:15觸發
"0 15 10 ? * 6#3" 每個月的第三個星期五上午10:15觸發