注意:定時任務的組件(類)一定不要lazy init,可以在設定檔中加default-lazy-init="false",或者在執行的組件上家註解@Lazy(false)
1.設定檔
先添加命名空間<?xml version="1.0" encoding="UTF-8"?><beans 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"> <!-- here is a right place for such configuration --> <task:annotation-driven executor="myExecutor" scheduler="myScheduler"/> <task:executor id="myExecutor" pool-size="5"/> <task:scheduler id="myScheduler" pool-size="10"/>
2.要執行的組件(類)
@Service@Lazy(false)public class PrintSchedule { private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");// @Scheduled(cron = "0-59 * * * * *")//每秒執行一次 @Scheduled(cron = "0 */10 * * * *")//每十分鐘執行一次 public void reportCurrentTime() { System.out.println("The time is now " + dateFormat.format(new Date())); } }