Spring中使用定時器步驟
阿新 • • 發佈:2018-12-16
1.我們建立定時器的配置檔案: spring-quartz.xml
2.引入頭部
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd" default-autowire="byName"> </beans> 這個是固定的
3.
<!-- 起床鬧鐘 --> <bean id="getUpId" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean" lazy-init="false"> <property name="jobDetail"> <bean class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject"> <ref bean="alarmClorkService"/> </property> <property name="targetMethod"> <value>getUp</value> </property> <property name="concurrent"> <value>true</value> </property> </bean> </property> <property name="cronExpression"> <value>0 0 5 * * ? </value><!-- 每天早上五點觸發 --> </property> </bean> 首先,注入的<ref bean="alarmClorkService"/>這個bean,他就是你的介面,即定時器觸發時呼叫的介面,alarmClorkService,是你service實現類的注入的內容,必須一致,這個大家都清楚 其次,<value>getUp</value>,getUp 就是 觸發之後呼叫指定介面中的具體的方法
4.
沒錯,還有一個id沒有介紹,<bean id="getUpId" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean", 也就是整個起床鬧鐘bean的id,這個id的作用是為了注入到以下的bean的 <property name="triggers">的<list>裡面,到這一步,才算完成了整個的定時器的配置,接下來,就是編寫service和service的實現類了
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean" lazy-init="false" autowire="no"> <property name="triggers"> <list> <!-- 每天早上五點起床打球 --> <ref bean="getUpId"/> </list> </property> </bean>
5.編寫service和它的實現類
Service介面 public interface ArticleService {
public void getUp();
}
Service的實現類 @Service("alarmClorkService") public class ArticleServiceImpl implements AlarmClorkService {
public void getUp(){
System.out.println("哈登:科比,可以說說你成功的祕訣嗎?");
System.out.println("科比:你見過凌晨4點的洛杉磯嗎?");
System.out.println("哈登:哦,見過,那時我剛從夜店出來,怎麼了?");
System.out.println("科比:啊..哦..,沒事沒事......");
}
}
這裡就是寫自己的業務邏輯了,也就不需要我教大家怎麼去寫了,只是注意在Service的實現類類面寫@Service("")的時候,要跟<ref bean="alarmClorkService"/>一致。