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” bean="alarmClorkService" property name="targetObject" property name="cronExpression"
<!-- 起床闹钟 -->
<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 就是 触发之后调用指定接口中的具体的方法 然后,修改 <value>0 0 5 * * ? </value><!-- 每天早上五点触发 -->,这个设置你的触发时间,根据你的业务逻辑来设置
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"/>一致。