1. 程式人生 > >Spring中使用定時器步驟

Spring中使用定時器步驟

1.我們建立定時器的配置檔案:     spring-quartz.xml

2.引入頭部

<?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"
       default-autowire="byName">


</beans>
這個是固定的

3.

<!-- 起床鬧鐘 -->
<bean id="getUpId" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"
      lazy-init="false">
    <property name="jobDetail">
        <bean class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
            <property name="targetObject">
                <ref bean="alarmClorkService"/>
            </property>
            <property name="targetMethod">
                <value>getUp</value>
            </property>
            <property name="concurrent">
                <value>true</value>
            </property>
        </bean>
    </property>
    <property name="cronExpression">
        <value>0 0 5 * * ? </value><!-- 每天早上五點觸發 -->
    </property>
</bean>
    
   
  首先,注入的<ref bean="alarmClorkService"/>這個bean,他就是你的介面,即定時器觸發時呼叫的介面,alarmClorkService,是你service實現類的注入的內容,必須一致,這個大家都清楚    
   其次,<value>getUp</value>,getUp 就是 觸發之後呼叫指定介面中的具體的方法

4.

      沒錯,還有一個id沒有介紹,<bean id="getUpId" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean", 也就是整個起床鬧鐘bean的id,這個id的作用是為了注入到以下的bean的 <property name="triggers"><list>裡面,到這一步,才算完成了整個的定時器的配置,接下來,就是編寫service和service的實現類了

<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean" lazy-init="false" autowire="no">
    <property name="triggers">
        <list>
            <!-- 每天早上五點起床打球 -->
             <ref bean="getUpId"/>
        </list>
    </property>
</bean>

5.編寫service和它的實現類

Service介面
public interface ArticleService {

        public void getUp();

  }

Service的實現類
@Service("alarmClorkService")
public class ArticleServiceImpl implements AlarmClorkService {

               public void getUp(){

                     System.out.println("哈登:科比,可以說說你成功的祕訣嗎?");

                     System.out.println("科比:你見過凌晨4點的洛杉磯嗎?");

                     System.out.println("哈登:哦,見過,那時我剛從夜店出來,怎麼了?");

                     System.out.println("科比:啊..哦..,沒事沒事......");

               }

  }

   這裡就是寫自己的業務邏輯了,也就不需要我教大家怎麼去寫了,只是注意在Service的實現類類面寫@Service("")的時候,要跟<ref bean="alarmClorkService"/>一致。