熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

Spring定時器的使用

2022-06-13   來源: Java開源技術 

  下面我們來看看關於Spring定時器的使用的詳細html代碼:
   [html]
    <?xml version= encoding=UTF?>
    <!DOCTYPE beans PUBLIC //SPRING//DTD BEAN//EN springbeansdtd >
    <beans>
    <!
    <bean id=reportManagerImpl
    class=orgspringframeworkschedulingquartzJobDetailBean> <property
    name=jobClass ref=reportManager /> </bean>
    >
    <span ><bean id=reportManagerImpl_month
    class=orgspringframeworkschedulingquartzMethodInvokingJobDetailFactoryBean>
    <property name=targetObject ref=reportManager />
    <property name=targetMethod value=addMonthReport />
    </bean></span>
    <bean id=reportManagerImpl_week
    class=orgspringframeworkschedulingquartzMethodInvokingJobDetailFactoryBean>
    <property name=targetObject ref=reportManager />
    <property name=targetMethod value=addWeekReport />
    </bean>
    <bean id=reportManagerImpl_xun
    class=orgspringframeworkschedulingquartzMethodInvokingJobDetailFactoryBean>
    <property name=targetObject ref=reportManager />
    <property name=targetMethod value=addXunReport />
    </bean>
    <! 旬報生成提醒 >
    <bean id=checkXunAndMail
    class=orgspringframeworkschedulingquartzMethodInvokingJobDetailFactoryBean>
    <property name=targetObject ref=reportManager />
    <property name=targetMethod value=checkXunAndMail />
    </bean>
    <span ><bean id=monthReportTrigger class=orgspringframeworkschedulingquartzCronTriggerBean>
    <property name=jobDetail ref=reportManagerImpl_month />
    <! 關鍵在配置此表達式 >
    <property name=cronExpression>
    <value> C * ?</value> <!每月的第一天的:觸發 C * ? >
    </property>
    </bean></span>
    <bean id=weekReportTrigger class=orgspringframeworkschedulingquartzCronTriggerBean>
    <property name=jobDetail ref=reportManagerImpl_week />

  <! 關鍵在配置此表達式 >
    <property name=cronExpression> <!每周一的:觸發 ? * MON >
    <value> ? * MON</value>
    </property>
    </bean>
    <bean id=xunReportTrigger class=orgspringframeworkschedulingquartzCronTriggerBean>
    <property name=jobDetail ref=reportManagerImpl_xun />
    <! 關鍵在配置此表達式 >
    <property name=cronExpression> <!每兩個周周末的:觸發 ? * MON/>
    <value> ? * MON/</value>
    </property>
    </bean>
    <! 旬報生成提醒 >
    <bean id=xunReportMailTrigger class=orgspringframeworkschedulingquartzCronTriggerBean>
    <property name=jobDetail ref=checkXunAndMail />
    <! 關鍵在配置此表達式 >
    <property name=cronExpression> <!每周一的:觸發 ? * MON>
    <value> ? * MON</value>
    </property>
    </bean>
    <span ><bean id=scheduler
    class=orgspringframeworkschedulingquartzSchedulerFactoryBean>
    <property name=triggers>
    <list>
    <ref bean=monthReportTrigger />
    <ref bean=weekReportTrigger />
    <! <ref bean=xunReportTrigger /> >
    <ref bean=xunReportMailTrigger />
    </list>
    </property>
    </bean></span>
    </beans>
    以紅色代碼為例說明Spring自帶一個定時器通過某種格式設置日期然後執行對應類的對應方法
    從下到上來看scheduler用來執行所有的觸發器也就是說把配置好的觸發器拿來執行至於每個觸發器是什麼樣的屬性?往上看第二段紅色代碼這裡配置了一個觸發器觸發中有觸發時間的配置和觸發對象的配置觸發時間的配置這裡不說了大家查資料可以找到的觸發對象的配置為reportManagerImpl_month至於這個對象對應了什麼屬性再往上看第一段紅色代碼<property name=targetObject ref=reportManager /><property name=targetMethod value=addMonthReport />這裡targetObject指的是觸發對象所在的類reportManager當然了這個類已經在spring中注冊了這裡直接把bean的id拿過來用就可以了targetMethod指的是觸發的方法當觸發條件符合時就會自動執行addMonthReport方法

這裡需要注意的事情
    三層或者說是四層結構一定要分開來寫不止要符合語法結構也使思路更加的清晰
    時間的填寫要多測試多查資料不能想當然爾
    targetObject要在spring中注冊以上這個文件一定要在配置文件中導入這是常識


From:http://tw.wingwit.com/Article/program/Java/ky/201311/28647.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.