spring定時器如何使用?
步驟1. 定義job bean
1.TaskScheduler構造
2.初始化相關服務
<bean id="xxxxScheduler" class="com.xxxx.TaskScheduler">
<property name="xxxxService" ref="xxxxService"/>
<property name="xxxxService" ref="xxxxService"/>
<property name="xxxxService" ref="xxxxService"/>
<property name="xxxxService" ref="xxxxService"/>
<property name="xxxxService" ref="xxxxService"/>
<property name="xxxxService" ref="xxxxService"/>
</bean>
步驟2. 定義一個joblist bean來統一管理job
<bean id="listScheduler" class="com.xxxx.ListScheduler">
<property name="schedulerList">
<list>
<ref bean="xxxxScheduler" />
<ref bean="xxxxScheduler"/>
<ref bean="xxxxScheduler" />
<ref bean="xxxxScheduler"/>
</list>
</property>
<property name="FinishHour" value="xxx"/>
<property name="ExecHour" value="xxx"/>
</bean>
步驟3.定義job factorybean和CronTriggerBean
<!--注冊定時器信息-->
<bean id="SchedulerTriggerJobDetail"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="listScheduler" />//定時任務列表
<property name="targetMethod" value="start" />//啟動方法
<property name="concurrent" value="false" />//指定最終封裝出的任務是否有狀態
</bean>
<!--說明:Spring中使用Quartz的2種方法(extends QuartzJobBean與使用MethodInvokingJobDetailFactoryBean)-->
<bean id="SchedulerTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<!--配置定時器任務的調度器-->
<property name="jobDetail" ref="SchedulerTriggerJobDetail" />
<property name="cronExpression">
<value>0 0 0 * * ?</value>
</property>
</bean>
<!--說 明:org.springframework.scheduling.quartz.CronTriggerBean是spring提供的觸發器,在這個 觸發器中設定了要觸發的job,同時設定了觸發時間(cronExpression)-->
4 <!--注冊監聽器-->
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="schedulerName" value="xxxx"/>
<property name="quartzProperties">
<props>
<prop key="org.quartz.threadPool.threadCount">2</prop>
</props>
</property>
<property name="triggers">
<list>
<ref bean="schedulerTrigger" />
</list>
</property>
</bean>
<!--說明:org.springframework.scheduling.quartz.SchedulerFactoryBean這是一個spring的工廠bean,監聽器:當spring關閉前,自動關閉scheduler,在triggers屬性列表中加入定義的觸發器,這里可以定義多個觸發器-->
spring定時器實現原理?
核心概念