spring定时器-quartz开发的步骤

第一步: 创建web工程项目,加载包 quartz.jar 和spring相关包

第二步 :src包中编写一个执行类

public class QuartzServiceImp implements IQuartzService {

	public void hskrun() {
		// TODO Auto-generated method stub
		System.out.println("run hskrun");

	}

}

 

第三步:配置applicationContext.xml

      a.加载执行bean

 <!-- 加载bean -->
  <bean id="hskrun" class="com.quartz.QuartzServiceImp" />

     b.下边的这个bean是我们定义要使用哪个bean中的哪个方法作为我们要定时执行的任务。这里定义了我们要使用hskrun这个bean中的hskrun()这个函数作为我们要定时执行的任务。

<!--将执行bean注入spring job容器类-->
 <bean id="quartzDetail"
 class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
  <property name="targetObject">   <ref bean="hskrun"/>  </property>
  <property name="targetMethod">   <value>hskrun</value>  </property>
 </bean>

 

c.这是一个触发器的bean的设置,在这里我们设置了我们要触发的jobDetail是哪个。这里我们定义了要触发的jobDetail是quartzDetail,并且我们还定义了触发的时间。

<!--触发器bean的设置,-->
 <bean id="quartzTrigger"
  class="org.springframework.scheduling.quartz.CronTriggerBean">
  <property name="jobDetail">
   <ref bean="quartzDetail"/>
  </property>
  <property name="cronExpression"> 
  <!-- 时间的设置请看下边另外一篇文章-->
   <value>2-59 * * * * ?</value>   
  </property>
 </bean>

 d下边的是我们管理这些触发器的总设置,他管理我们我们的触发器列表。据说他的内部是自己建立了自己的数据库来存放自己的临时表,因为我们在我们的配置文件中自动的配置了dataSource这个bean,我们的每一个bean都会在使用数据库的时候找到他,但是如果我们下边的这个管理bean知道的话就会把他当成自己的临时数据库,然后就会出错。所以我们需要将下边的数据库感知设置成否定。这样就不影响他内部实现了。我们可以在下边的bean的list中放置多个触发器。

<!-- 一定要把autowire设置为no,否则它能感知出dataSourse并设置里面的dataSourse的属性--> 
<bean autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
      <property name="triggers">
      <list>
        <ref local="quartzTrigger"/>
      </list>
     </property>
   </bean>

 第三步启动spring

 编写启动class

public class Testrun {

	public static void main(String[] args) {
		ApplicationContext springContext = new ClassPathXmlApplicationContext(
				new String[] { "classpath:applicationContext.xml" });

	}
}

 

第四步运行 Testrun

显示结果如下

run hskrun
run hskrun
run hskrun
run hskrun
run hskrun
run hskrun
run hskrun

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值