应用Spring整合Quartz定时执行任务

使用Spring整合Quartz定时执行任务

在修改一个项目的工程中。发现任务竟然没有生成。多次查看这个项目。终于在spring的配置中发现了定时任务。

使用spring整合Quartz来定时执行某个类中的方法。。于是经过上网查资料,终于实验成功了。

1.首先导入了spring的jar包和quartz的jar包

在spring的配置文件中。

 

   把需要执行的类在spring中先声明。

 

 <bean id="autoCreateJob2" class="com.inspur.job.quartz.AutoCreateJob">

 

 <!-- 每天凌晨生成下日作业(autoCreateJob2的dayPlan1方法) -->  
定义bean和bean中的方法:
  <bean id="dayPlan1" 
          class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
         <property name="targetObject"><ref bean="autoCreateJob2"/></property>
         <property name="targetMethod"><value>dayPlan1</value></property>
         <property name="concurrent" value="false" /> 
    </bean>
 <!-- 定义执行时间:每天2:30生成下日作业, 0 30 2 * * ?  -->
复杂的定义时间:
    <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">   
        <property name="jobDetail" ref="dayPlan1"/>   
        <property name="cronExpression" >
        <value>0 30 2 ? * *</value>
     </property>   
    </bean>

 

 

最后触发: 

 

   <bean lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
             <property name="triggers">     
              <list><ref local="cronTrigger"/>
              <ref local="cronTrigger1"/>
              </list> 
               </property>
    </bean> 

 

快捷的测试方法:不过都需要先启动。然后修改时间才能触发

String[] configs={"file:F:/java/hnmetatask/web/WEB-INF/conf/applicationContext_hibernate.xml"};
ApplicationContext ac=new ClassPathXmlApplicationContext(configs);

 

最后感谢以下提供资料的一些链接:

http://www.cnblogs.com/kay/archive/2007/11/02/947372.html

 

http://www.2cto.com/kf/201201/116956.html

 

http://blog.csdn.net/jerry_bj/article/details/6792864