淺析spring定時器的使用
原生的Java定時器
使用Java.util包下的定時器也很簡單,具體代碼如下:
//設(shè)置定時器開始時間 Date time = sdf.parse("2020-10-01 16:40:00"); //設(shè)置定時器 Timer timer = new Timer(); //第三個參數(shù)表示每隔多久循環(huán)一次 timer.schedule(new TimerTask() { @Override public void run() { System.out.println("嗨"); } }, time, 3000);
Spring的定時器
- 1)導(dǎo)包,除了spring提供的包之外,還需要quartz包(可以到maven倉庫中去下載)
- 2)自定義Task類:
當(dāng)定時器啟動時,Spring執(zhí)行我們指定Task中的方法
- 3)MethodInvokingJobDetailFactoryBean類:
將自定義的Task類交給MethodInvokingJobDetailFactoryBean,并告訴它Task的執(zhí)行方法,由它負(fù)責(zé)去執(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定時器的使用的詳細(xì)內(nèi)容,更多關(guān)于spring 定時器的資料請關(guān)注腳本之家其它相關(guān)文章!
- Springboot集成定時器和多線程異步處理操作
- Spring Boot定時器創(chuàng)建及使用解析
- Spring Boot 2 整合 QuartJob 實(shí)現(xiàn)定時器實(shí)時管理功能
- SpringBoot集成ElaticJob定時器的實(shí)現(xiàn)代碼
- SpringBoot 動態(tài)定時器的使用方法
- 使用spring整合Quartz實(shí)現(xiàn)—定時器功能
- 詳解spring batch的使用和定時器Quart的使用
- 關(guān)于spring中定時器的使用教程
- java Quartz定時器任務(wù)與Spring task定時的幾種實(shí)現(xiàn)方法
- Java中Spring使用Quartz任務(wù)調(diào)度定時器
- Spring整合Quartz實(shí)現(xiàn)動態(tài)定時器的示例代碼
- JAVA中 Spring定時器的兩種實(shí)現(xiàn)方式
相關(guān)文章
idea項(xiàng)目啟動報錯,日志包沖突slf4j和logback沖突問題
遇到SLF4J沖突時,可以嘗試移除沖突的綁定或調(diào)整項(xiàng)目依賴,具體方法包括刪除多余的Logger綁定庫,如Logback或Log4j,或在項(xiàng)目配置文件中明確指定使用的日志框架,若使用WebLogic服務(wù)器,需在weblogic.xml中進(jìn)行特定配置,適當(dāng)調(diào)整pom.xml文件中的依賴版本也可能解決問題2024-09-09解讀線程池-Executors的newSingleThreadExecutor和newFixedThreadPool(1
這篇文章主要介紹了解讀線程池-Executors的newSingleThreadExecutor和newFixedThreadPool(1)區(qū)別,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08springboot+thymeleaf找不到視圖的解決方案
這篇文章主要介紹了springboot+thymeleaf找不到視圖的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06java實(shí)現(xiàn)文件上傳、下載、圖片預(yù)覽
這篇文章主要介紹了java實(shí)現(xiàn)文件上傳、下載、圖片預(yù)覽,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-01-01SpringCloud2020.0.x版UnderTow AccessLog相關(guān)配置簡介
本文詳細(xì)介紹了SpringCloud中AccessLog的相關(guān)配置,我們可以根據(jù)文中的相關(guān)數(shù)據(jù)配置出所需的AccessLog的信息以及格式,感興趣的小伙伴可以參考一下2021-08-08