<dependency>
<groupId>it.sauronsoftware.cron4j</groupId>
<artifactId>cron4j</artifactId>
<version>2.2.5</version>
</dependency>
@Component
public class MyTask implements Runnable {
@Override
public void run() {
}
}
@Component
public class MyTask implements Runnable {
@Scheduled(cron = "0 0 12 * * ?")
@Override
public void run() {
}
}
<task:annotation-driven/>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task.xsd">
<task:annotation-driven/>
<bean id="myTask" class="com.example.MyTask"/>
<bean id="scheduler" class="it.sauronsoftware.cron4j.spring.Cron4jSpringScheduler">
<property name="taskScheduler" ref="taskScheduler"/>
</bean>
<bean id="taskScheduler" class="org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler">
<property name="poolSize" value="10"/>
</bean>
</beans>