11.Spring實現定時器功能之方式一

需求分析

咱們生活中常見的定時任務,比入說鬧鐘、備忘等,而在外面程序裏面,很常見的好比:定時清空回收站、登陸時密碼錯誤次數達到以後就會讓你在多久以後重試等等,那麼這些需求,咱們Spring提供的定時器均可以知足功能spring

相關配置

1.pom jar包導入
<!--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>
2.applictionContext-timer.xml配置

這裏面須要注意的是,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>
3.在Spring的配置文件中引入timer.xml的配置

這裏由於我把相關實現功能的配置文件都放在plugins文件夾中的,因此選的是通配下面的.xml文件app

<!--配置導入配置文件,位置爲當前目錄平級的plugins文件夾下面的全部.xml文件-->
<import resource="classpath:plugins/*.xml"/>

代碼實現

1.業務類的接口
/*
 *@ClassName:IMyTimer
 *@Author:Arvin_yuan
 *@Date:2020/3/11 23:00
 *@Description:TODO
 */

public interface IMyTimer {

    void run();

}
2.業務類的實現類
/*
 *@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

相關文章
相關標籤/搜索