<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.3.2</version>
</dependency>
<import resource="spring-schedule.xml"/>
1.anno
schedule.properties
schedule.task.test=0/2 * * * * ?
<context:annotation-config/>
<context:component-scan base-package="com.kuang"/>
<bean id="111" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="order" value="1" />
<property name="ignoreUnresolvablePlaceholders" value="true" />
<property name="locations">
<list>
<value>classpath:schedule.properties</value>
</list>
</property>
</bean>
@Configuration
@EnableAsync
@EnableScheduling
public class ScheduleAnnoConfig {
//@Autowired
//UserService userService;
@Scheduled(cron = "${schedule.task.test}")
public void ScheduleAnno() {
System.out.println("Schedule Anno");
// userService.task(); //sout taskXml
}
}
2.xml
<!-- 指定相應的類 -->
<bean id="scheTest1" class="com.kuang.config.ScheduleXmlConfig"/>
<!-- 指定要定時任務需要執行的業務邏輯的java類和方法 -->
<bean id="scheTest11" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="scheTest1"/>
<property name="targetMethod" value="taskXml"/>
<property name="concurrent" value="false" />
</bean>
<!--定義觸發的時間 -->
<bean id="scheTest1Cron" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="scheTest11"/>
<property name="cronExpression" value="0/2 * * * * ?"/>
</bean>
<!--觸發器 -->
<bean autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list> <ref bean="scheTest1Cron" /> </list>
</property>
</bean>
public class ScheduleXmlConfig {
// @Autowired
// UserService userService;
public void taskXml() {
// userService.taskXml();// sout("taskXml");
System.out.println("Schedule Xml");
}
}