Ответы до сих пор полезны для более ранних версий Spring.Вот тот, который немного больше приспособлен к Spring 4:
Предположим, что у вас есть основной класс приложения, аннотированный для сканирования компонентов, например:
@ComponentScan({"com.my.class"})
И внутри этого пакета у вас естькласс задания, который выглядит следующим образом:
@Configuration
@EnableScheduling
public class MyJobClass {
@Scheduled (cron = "* * * * * *")
public void runJob() throws DocumentException {
thingsToDoOnSchedule();
}
}
Обратите внимание, что метод, который вы аннотируете с помощью @Scheduled, должен возвращать void и что ваше выражение cron должно иметь 6 символов (пример, показанный здесь, выполняется каждую секунду, чтотестирование того, что ваша работа делает проще).
Вам также понадобятся аннотации на уровне класса как @Configuration, так и @EnableScheduling, чтобы сделать эту работу.Похоже, что любой из них сам по себе игнорируется.
Для дальнейшего прочтения здесь есть справочный документ о включении планирования Spring 4 .