SpringTask實現(xiàn)定時任務(wù)方法講解
SpringTask是Spring自帶的功能。實現(xiàn)起來比較簡單。
使用SpringTask實現(xiàn)定時任務(wù)有兩種方式:
1.注解方式
基于注解@Scheduled
@Scheduled(cron = "*/1 * * * * ?")
public void up(){
System.out.println("定時任務(wù)開啟:"+System.currentTimeMillis());
}cron表達(dá)式定義定時任務(wù)如何去執(zhí)行。
2.配置文件xml方式
基于xml的方式【@Configuration + @ImportResource + xml】需要重啟應(yīng)用才能生效
配置xml文件,定義xml文件的名稱為task.xml,放置文件在resources文件夾下:

xml代碼如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.1.xsd
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.1.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd">
<!--聲明一個具有一個線程的池,如果定義多個,每個對象將獲取同樣的運行機會-->
<task:scheduler id="sch" pool-size="10"/>
<!--任務(wù)的調(diào)度類-->
<bean id="scheduleTask" class="com.cloudtop.base.task.ScheduleTask"/>
<!--引用線程池-->
<task:scheduled-tasks scheduler="sch">
<!--年報調(diào)度任務(wù) 5秒-->
<task:scheduled ref="scheduleTask" method="yearReportTask" cron="0/5 * * * * ?"/>
</task:scheduled-tasks>
</beans>配置類加載xml文件
package com.cloudtop.base.task;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.ImportResource;
/**
* 加載調(diào)度的配置文件
*/
@Configuration
@ImportResource(locations={"classpath:task/task.xml"})//加載調(diào)度xml
public class SpringTaskConfig {
}任務(wù)的調(diào)度類實現(xiàn)
package com.cloudtop.base.task;
import com.cloudtop.base.error.exception.BusinessException;
import com.cloudtop.core.service.EnvironmentUpService;
import org.springframework.beans.factory.annotation.Autowired;
/**
* 定時任務(wù)類
*/
public class ScheduleTask {
@Autowired
EnvironmentUpService environmentUpService;
public void yearReportTask() throws BusinessException {
System.out.println("*******定時任務(wù)執(zhí)行的業(yè)務(wù)代碼******");
}
}最后,第一種使用注解@EnableSchedu ling開啟定時任務(wù),第二種使用xml的方式配置好上面的三個文件就開啟了定時任務(wù),不用使用注解@EnableSchedu ling來開啟定時任務(wù)。
@SpringBootApplication
@ServletComponentScan
@EnableAutoConfiguration(exclude = {MultipartAutoConfiguration.class})
@EnableSchedu ling
public class CloudtopWebFrameApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(CloudtopWebFrameApplication.class);
}
/**
* 主程序入口
* 所有SpringBoot項目均采用main方法啟動主程序,該部分為必須項
* @param args
*/
public static void main(String[] args) {
SpringApplication.run(CloudtopWebFrameApplication.class, args);
}
}最后在控制臺會輸出結(jié)果:

到此這篇關(guān)于SpringTask實現(xiàn)定時任務(wù)方法講解的文章就介紹到這了,更多相關(guān)SpringTask定時任務(wù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Spring Task定時任務(wù)開發(fā)實戰(zhàn)教程
- SpringTask-Timer實現(xiàn)定時任務(wù)的詳細(xì)代碼
- SpringBoot?使用定時任務(wù)(SpringTask)的詳細(xì)步驟
- Spring-Task定時任務(wù)的使用介紹
- Spring Task定時任務(wù)的實現(xiàn)詳解
- 使用spring-task定時任務(wù)動態(tài)配置修改執(zhí)行時間
- Spring Task定時任務(wù)每天零點執(zhí)行一次的操作
- mall整合SpringTask實現(xiàn)定時任務(wù)的方法示例
- Spring Task實現(xiàn)定時任務(wù)的示例
相關(guān)文章
Spring sentinel哨兵模式相關(guān)原理解析
這篇文章主要介紹了Spring sentinel哨兵模式相關(guān)原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-11-11
SpringBoot優(yōu)化接口響應(yīng)時間的九個技巧
在實際開發(fā)中,提升接口響應(yīng)速度是一件挺重要的事,特別是在面臨大量用戶請求的時候,本文為大家整理了9個SpringBoot優(yōu)化接口響應(yīng)時間的技巧,希望對大家有所幫助2024-01-01
java調(diào)用python代碼的兩種實現(xiàn)方式:Runtime.exec()和Jython
在Java中調(diào)用Python代碼有多種方法,包括使用Runtime.exec()和第三方庫如Jython,Runtime.exec()通過系統(tǒng)命令執(zhí)行Python腳本,適用于簡單的調(diào)用場景,Jython則是一個Python的Java實現(xiàn),允許在Java中直接運行Python代碼,適用于更深層次的集成需求2025-01-01
IDEA無法識別相關(guān)module模塊問題的解決過程
這篇文章主要給大家介紹了關(guān)于IDEA無法識別相關(guān)module模塊問題的解決過程,文中通過圖文介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用IDEA具有一定的參考借鑒價值,需要的朋友可以參考下2023-07-07
Springboot過濾器禁止ip頻繁訪問功能實現(xiàn)
這篇文章主要介紹了Springboot過濾器禁止ip頻繁訪問功能實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-04-04

