淺析spring定時器的使用
原生的Java定時器
使用Java.util包下的定時器也很簡單,具體代碼如下:
//設置定時器開始時間
Date time = sdf.parse("2020-10-01 16:40:00");
//設置定時器
Timer timer = new Timer();
//第三個參數(shù)表示每隔多久循環(huán)一次
timer.schedule(new TimerTask() {
@Override
public void run() {
System.out.println("嗨");
}
}, time, 3000);
Spring的定時器
- 1)導包,除了spring提供的包之外,還需要quartz包(可以到maven倉庫中去下載)
- 2)自定義Task類:
當定時器啟動時,Spring執(zhí)行我們指定Task中的方法
- 3)MethodInvokingJobDetailFactoryBean類:
將自定義的Task類交給MethodInvokingJobDetailFactoryBean,并告訴它Task的執(zhí)行方法,由它負責去執(zhí)行
- 4)CronTriggerFactoryBean觸發(fā)器:
定義定時器觸發(fā)的時間,以及執(zhí)行對象
- 5)SchedulerFactoryBean:
將觸發(fā)器對象交給它統(tǒng)一保管
配置信息如下:
<?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
https://www.springframework.org/schema/beans/spring-beans.xsd ">
<!-- 定時器-->
<bean id="myTask" class="com.cjh.MyTask"></bean>
<!-- 創(chuàng)建一個Spring提供好的計時器對象,用來做倒計時管控-->
<bean id="taskExecutor" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="myTask"/>
<property name="targetMethod" value="test"/>
</bean>
<!-- 觸發(fā)器-->
<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="taskExecutor"/>
<property name="cronExpression" value="30/5 41 18 * * ?"/>
</bean>
<!-- 管理觸發(fā)器對象的容器-->
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="cronTrigger"/>
</list>
</property>
</bean>
</beans>
- 6)主函數(shù)
只需要加載配置文件,觸發(fā)器就會啟動
public class TestMain {
public static void main(String[] args) throws MessagingException, ParseException {
ApplicationContext context = new ClassPathXmlApplicationContext("ApplicationContext.xml");
}
}
以上就是淺析spring定時器的使用的詳細內(nèi)容,更多關(guān)于spring 定時器的資料請關(guān)注腳本之家其它相關(guān)文章!
- Springboot集成定時器和多線程異步處理操作
- Spring Boot定時器創(chuàng)建及使用解析
- Spring Boot 2 整合 QuartJob 實現(xiàn)定時器實時管理功能
- SpringBoot集成ElaticJob定時器的實現(xiàn)代碼
- SpringBoot 動態(tài)定時器的使用方法
- 使用spring整合Quartz實現(xiàn)—定時器功能
- 詳解spring batch的使用和定時器Quart的使用
- 關(guān)于spring中定時器的使用教程
- java Quartz定時器任務與Spring task定時的幾種實現(xiàn)方法
- Java中Spring使用Quartz任務調(diào)度定時器
- Spring整合Quartz實現(xiàn)動態(tài)定時器的示例代碼
- JAVA中 Spring定時器的兩種實現(xiàn)方式
相關(guān)文章
java實現(xiàn)數(shù)據(jù)庫的數(shù)據(jù)寫入到txt的方法
這篇文章主要為大家詳細介紹了java實現(xiàn)數(shù)據(jù)庫的數(shù)據(jù)寫入到txt的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07
spring framework體系結(jié)構(gòu)及模塊jar依賴關(guān)系詳解
在本篇文章里小編給大家整理的是關(guān)于spring framework體系結(jié)構(gòu)及模塊jar依賴關(guān)系,對此有興趣的朋友們可以學習下。2019-09-09

