咱們生活中常見的定時任務,比入說鬧鐘、備忘等,而在外面程序裏面,很常見的好比:定時清空回收站、登陸時密碼錯誤次數達到以後就會讓你在多久以後重試等等,那麼這些需求,咱們Spring提供的定時器均可以知足功能spring
<!--spring定時器包--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${org.springframework.version}</version> </dependency> <!-- 定時調度 --> <dependency> <groupId>quartz</groupId> <artifactId>quartz</artifactId> <version>1.5.2</version> </dependency>
這裏面須要注意的是,ref裏面引用的就是咱們本身寫的具體Service類裏註解的別名,下面會講到服務器
<task:scheduled-tasks> <!--這裏會掃描到咱們自定義bean名稱的類,並執行裏面的run方法,cron就是咱們的執行頻率--> <task:scheduled ref="mytimer" method="run" cron="45,55 23,24 0,9 11 * ? " /> </task:scheduled-tasks>
這裏由於我把相關實現功能的配置文件都放在plugins文件夾中的,因此選的是通配下面的.xml文件app
<!--配置導入配置文件,位置爲當前目錄平級的plugins文件夾下面的全部.xml文件--> <import resource="classpath:plugins/*.xml"/>
/* *@ClassName:IMyTimer *@Author:Arvin_yuan *@Date:2020/3/11 23:00 *@Description:TODO */ public interface IMyTimer { void run(); }
/* *@ClassName:MyTimerImpl *@Author:Arvin_yuan *@Date:2020/3/11 23:01 *@Description:TODO */ @Service("mytimer")//注意,這裏的名字和application-timer.xml裏面bean配置的名字一致 public class MyTimerImpl implements IMyTimer { @Override public void run() { System.out.println("這裏寫本身的業務邏輯"); }
}ide
到這裏,就完成了,若是有熱部署插件均可以不用重啓服務器就能實現。由於自己很簡單,加上也寫了註釋,就不囉嗦了,只是須要注意關於配置定時業務的cron,google一下都能知道。google