Spring+quartz定时任务(配置)

时间:2021-05-18 07:51:05

1.首先将spring的jar包以及quartz的jar包导入lib下

2.配置web.xml如下:

就是将spring的监听配置进去

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
     <listener>
         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <context-param>
         <param-name>contextConfigLocation</param-name>
         <param-value>/WEB-INF/applicationContext.xml</param-value>
    </context-param>
  <display-name></display-name>    
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

3.在applicationContext.xml文件中配置quertz,如下:

<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-2.0.xsd">
    
    <!--1. 业务配置,类-->
    <bean id="testJob" class="com.sendmsg.MsgSender"/>
    <!--2. JobDetail的配置 -->
    <bean id="testJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">   
        <property name="targetObject" ref="testJob"/>  
        <property name="targetMethod" value="sendMsg"/><!-- 执行方法 -->
        <property name="concurrent" value="false"/>
    </bean>
    <!--3. Trigger的配置 -->
    <bean id="testTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">  
       <property name="jobDetail" ref="testJobDetail"/>  
       <property name="cronExpression" value="0 0 9 * * ?"/><!--0 0 9 * * ? 每天早上9点触发一次 /59 * * * * ?59秒触发-->  
    </bean>
    <!--4. 启动定时器 -->
    <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">  
       <property name="triggers">  
           <list>  
              <ref bean="testTrigger"/>  
           </list>  
       </property>  
       <property name="autoStartup" value="true"/>  
    </bean>
</beans>

4.将项目部署上去,会自动定时执行配置的方法