本文為博主原創,未經允許不得轉載
項目中要經常事項定時功能,在網上學習了下用spring的定時功能,基本有兩種方式,在這里進行簡單的總結,
以供后續參考,此篇只做簡單的應用。
1.在spring-servlet.xml文件中加入task的命名空間:
xmlns:task="http://www.springframework.org/schema/task" xsi:schemaLocation="http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.0.xsd"
然后使用task配置掃描注解
<!-- 定時任務 -->
<task:annotation-driven scheduler="qbScheduler" mode="proxy"/>
<task:scheduler id="qbScheduler" />
此時就可以直接使用@Scheduled(cron = "時間格式串"),應用該注解就可以實現定時的功能
@Scheduled(cron = "0/5 * * * * ?") //每隔5秒執行一次定時任務 public void consoleInfo(){ System.out.println("定時任務"); }
第二種方法為:不使用注解實現定時任務,將定時的功能在spring配置文件中實現。
xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation=" http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task-3.0.xsd”
<description> 定時任務 </description>
//定時注解驅動 <task:annotation-driven /> //進行定時任務的類,將其定義為一個bean <bean id="spaceStatisticsService" class="com.pojo.system.manager.sigar.impl.SpaceStatisticsServiceImpl"></bean>
//通過task標簽,定義定時功能 <task:scheduled-tasks> <task:scheduled ref="spaceStatisticsService" method="statisticSpace" cron="59 59 23 * * ?" /> </task:scheduled-tasks>
要實現的代碼部分為:
@Service public class SpaceStatisticsServiceImpl implements SpaceStatisticsService { @Override public void statisticSpace() { System.out.println("實現定時功能"); } }
總結:兩種方法都能實現定時的功能,但明顯第一種方式會比較簡潔,而且更加方便。
