1. 程式人生 > >關於Java Web 使用Spring中使用Quartz(定時呼叫、實現固定時間執行), 觸發定時器(執行某些任務)的例項

關於Java Web 使用Spring中使用Quartz(定時呼叫、實現固定時間執行), 觸發定時器(執行某些任務)的例項

第一步:pom.xml中Maven下載需要的jar架包。

<!--```````````定時器```````````-->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>4.1.0.RELEASE</version>
</dependency>
<dependency>
    <groupId>
org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>4.1.6.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>
4.1.6.RELEASE</version> </dependency> <!--quartz所需jar--> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>1.8.5</version> </dependency> <dependency> <groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId> <version>1.6.12</version> </dependency>

第二步:applicationContext.xml配置觸發器。

<!--首先是配置要定時載入的目標類-->
<bean id="MainAction" class="com.jandar.frame.system.web.MainAction"/>
<!-- 配置定時器配置 -->
<bean id="SpringQtzJobMethod" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
    <property name="targetObject" ref="MainAction" />
    <property name="targetMethod" value="myTimer" />
    <property name="concurrent" value="false"/>
</bean>
<!--配置定時器時間間隔觸發器,“0/5 * * * * ?” 設定的是每 五秒 觸發一次-->
<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
    <property name="jobDetail" ref="SpringQtzJobMethod" />
    <property name="cronExpression" value="0/5 * * * * ?" />
</bean>
<!-- 配置啟動定時器 -->
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    <property name="triggers">
        <list>
            <ref bean="cronTrigger" />
        </list>
    </property>
</bean>

第二步:實現的呼叫方法。

/**
 * 基於註解的定時器
 * Create by 2017/08/17
 *
 * @author Jmlc
 */
public void myTimer(){
    System.out.println("動態時間:"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));//替換成想要執行任務
}